表单提交后,Asp .NET Dropdownlist为空

时间:2018-01-10 14:06:55

标签: c# asp.net drop-down-menu

我有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数据?

1 个答案:

答案 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,你应该阅读它。