在运行时从后面的代码向DropDownList添加项目

时间:2019-05-01 18:03:46

标签: asp.net vb.net

在前端,我有这样的东西:

<asp:DropDownList ID="MyBadDropDown" AutoPostBack="true" AppendDataBoundItems="true" runat="server" OnChange="valueChanged()" DataTextField="Text" DataValueField="Value"></asp:DropDownList>

在后端作为测试代码,我有这样的东西:

    Dim listCol As New ListItemCollection
    listCol.Add(New ListItem With {.Value = ""})

    listCol.Add(New ListItem With {.Value = ConvertValue(Of String)("640", "0"), .Text = "New Item"})
    Me.hidValeuForThis.Value = "640"


    Me.MyBadDropDown.DataSource = listCol
    Me.MyBadDropDown.DataBind()

但是,当我点击代码的那一部分时,新项目不会添加到下拉菜单中,直到有回发...为止,因此它不会自动显示在下拉菜单中。 我该如何解决?

2 个答案:

答案 0 :(得分:0)

创建一个非本地列表,然后将该项目添加到此列表中。在将此列表分配为下拉列表作为数据源后,可以将项目添加到列表中或将其删除,然后出现下拉列表。

答案 1 :(得分:0)

我稍微简化了一下,它似乎起作用了。

System.out.println(jaddress.get("zipcode").getAsString());

背后的代码...

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"   
    DataTextField="Text" DataValueField="Value" Height="16px" 
    OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>