Bil*_*lly 13 javascript asp.net
我在客户端通过javascript向select元素添加了一些选项,并且无法在回发中获取它.
我该怎么办?
用于添加选项的代码:
<asp:DropDownList ID="ddlProduct" runat="server"></asp:DropDownList>
var ddlProduct = "#"+"<%= ddlProduct.ClientID %>";
$(ddlProduct).append($("<option></option>").html(product_name)
Run Code Online (Sandbox Code Playgroud)
Kir*_*tan 18
使用JavaScript添加到下拉列表的选项永远不会到达服务器端,更不用说在回发期间保留.选项存储在ViewState中.您正在使用客户端的DOM修改下拉列表,但是ViewState呢?您没有对其进行修改,因此当从ViewState重新加载下拉列表的状态时,ASP.NET不会知道对下拉列表进行了任何更改.
一种方法是使用隐藏变量来存储您添加到下拉列表中的值.当控件进入服务器端时,您可以检查此隐藏字段的值,并在必要时将项目添加到下拉列表中.
您可以将项目存储在JSON格式的字符串中,并使用.NET Framework的DataContractJsonSerializer类(如果您使用的是.NET Framework> = 3.5)在服务器端解析此字符串.如果您不使用.NET Framework 3.5,那么您可以使用以下分隔符 - text1,text2|value1,value2