Asp.net 当选择其他内容时,DropDownList中的选定值始终返回默认值

Asp.net 当选择其他内容时,DropDownList中的选定值始终返回默认值,asp.net,vb.net,dropdown,selectedvalue,Asp.net,Vb.net,Dropdown,Selectedvalue,我正在使用ASP.NET。我有一个动态构建的Dropdownlist。现在,当你点击一个提交按钮时,我只会在你从下拉列表中选择了一些东西(如果值不是0)时才尝试做一些事情。但不知何故,我的值总是返回0(默认值),当选择某个值时,该值应为1或2 这里有人知道可能是什么问题吗 在这里,我循环了我所有的Dropdownlist,每个Dropdownlist都有一个emailinput(这两个都属于一起) 这就是所有内容动态构建的方式: Dim div71 As New Pane

我正在使用ASP.NET。我有一个动态构建的Dropdownlist。现在,当你点击一个提交按钮时,我只会在你从下拉列表中选择了一些东西(如果值不是0)时才尝试做一些事情。但不知何故,我的值总是返回0(默认值),当选择某个值时,该值应为1或2

这里有人知道可能是什么问题吗

在这里,我循环了我所有的Dropdownlist,每个Dropdownlist都有一个emailinput(这两个都属于一起)

这就是所有内容动态构建的方式:

            Dim div71 As New Panel
            div71.CssClass = "border"
            Dim ddl As New DropDownList
            ddl.ID = "select" & panel & "_" & counter
            ddl.Items.Clear()
            ddl.Items.Add(New ListItem("Select something", "0"))
            ddl.Items.Add(New ListItem("Select 1", "1"))
            ddl.Items.Add(New ListItem("Select 2", "2"))
            ddl.CssClass = "form_txt2 colegas"

使用visibile=“false”以标准ASP.NET方式创建下拉列表,然后在填充时将其可见性设置为true

<asp:DropDownList ID="ddl" runat="server" visible="false" CssClass="form_txt2 colegas"></asp:DropDownList>

ddl.Items.Clear()
ddl.Items.Add(New ListItem("Select something", "0"))
ddl.Items.Add(New ListItem("Select 1", "1"))
ddl.Items.Add(New ListItem("Select 2", "2"))
ddl.Visible = true

ddl.Items.Clear()
ddl.Items.Add(新列表项(“选择某物”、“0”))
ddl.Items.Add(新列表项(“选择1”、“1”))
ddl.Items.Add(新列表项(“选择2”、“2”))
ddl.Visible=true
否则,您可以构建一个GridView,其中每行都有一个DropDownList,这样您就可以控制要显示的行数(因此->DropDownList)——如果您将此GridView绑定到一个包含5条记录的数据集,那么您将有5个DropDownList

 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="BatchID" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="Column1" HeaderText="Column1"  SortExpression="Column1"  />
        <asp:BoundField DataField="Column2" HeaderText="Column2" SortExpression="Column2" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server">
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>


您将在GridView RowDataBound事件中填充这些下拉列表

您无法生成“runat=“server”控件,因为它们通常经过预处理以合并到.designer.vb文件中好的,我删除了它,我只是把它放在那里,因为我在网上看到,这可能是问题所在,但显然不是。for循环在哪里运行?请提供以下内容的定义或类型:“AllDropDownList()”、“allEmailInputs()”、“final”和“saveEventUser()”。这不是选项。它必须是动态构建的,因为在那里它还可以选择必须显示多少下拉列表。因为这些下拉列表将显示在事件下,事件制作者可以选择需要多少下拉列表。因为最终dropdownlists将用于订阅事件。
 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="BatchID" OnSelectedIndexChanged="GridView1_SelectedIndexChanged">
    <Columns>
        <asp:BoundField DataField="Column1" HeaderText="Column1"  SortExpression="Column1"  />
        <asp:BoundField DataField="Column2" HeaderText="Column2" SortExpression="Column2" />
        <asp:TemplateField>
            <ItemTemplate>
                <asp:DropDownList ID="DropDownList1" runat="server">
                </asp:DropDownList>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>