我有dropdownlist
在填充两个textboxes
后动态填充。
当我提交表单时,dropdownlist
即使在动态填充之后也是空的。
的DropDownList
<asp:DropDownList ID="DropDownListReason" runat="server" CssClass="span8">
<asp:ListItem Text="Select a reason" Value=""></asp:ListItem>
</asp:DropDownList>
渲染
protected override void Render(HtmlTextWriter writer)
{
//get the data list.
foreach (var item in dataList)
{
Page.ClientScript.RegisterForEventValidation(this.DropDownListReason.UniqueID, item.Id.ToString());
}
base.Render(writer);
}
Jquery的
//get the data
$.each(response, function (key, value) {
if (value.requiresDescription) {
requiresDescription.push(value.id);
}
$("#<%= DropDownListReason.ClientID %>").append($("<option />").val(value.id).text(value.description));
});
表单submmit操作,它是点击事件的按钮。
如何在提交表单后保留dropdownlist
数据?
答案 0 :(得分:1)
您还需要在后面的代码中填充DropDownList。支持不知道你用javascript填充它,所以当你执行一个PostBack时,页面被重新加载并恢复原始状态,这不是ListItems。
所以要么添加DropDownList中的所有选项。
IEnumerable
或以编程方式添加它们
<asp:DropDownList ID="DropDownListReason" runat="server" CssClass="span8">
<asp:ListItem Text="Select a reason" Value=""></asp:ListItem>
<asp:ListItem Text="Option 1" Value="1"></asp:ListItem>
<asp:ListItem Text="Option 2" Value="2"></asp:ListItem>
</asp:DropDownList>
现在,当您提交页面时,您可以使用<asp:DropDownList ID="DropDownListReason" runat="server" AppendDataBoundItems="true" CssClass="span8">
<asp:ListItem Text="Select a reason" Value=""></asp:ListItem>
</asp:DropDownList>
DropDownListReason.Items.Insert(DropDownListReason.Items.Count(), new ListItem("Option 1", "1"));
DropDownListReason.Items.Insert(DropDownListReason.Items.Count(), new ListItem("Option 2", "2"));
阅读DropDownListReason
的值。在PostBack中保留表单值称为DropDownListReason.SelectedValue
。如果你要使用webforms,你应该阅读它。