2017-07-18 46 views
0

我正在使用ASP.NET。我有一個動態構建的Dropdownlist。現在當你點擊一個提交按鈕時,只有當你從Dropdownlist中選擇了一些東西('如果值不是0'),我纔會嘗試做某件事。但不知何故,我的數值總是給出0(默認值),當選擇了某些東西時,值也應該是1或2.從DropDownList中選擇的值在其他選項被選中時總是返回默認值

任何人在這裏誰知道可能是什麼問題?

在這裏我遍歷所有我的下拉列表,並與每一個下拉列表總會有一個emailinput(那些屬於2一起)

  For i As Integer = 0 To allDropDownLists.Count - 1 
       If allDropDownLists(i).SelectedValue = "0" Then 
       Else 
        If allEmailInputs(i).Text IsNot "" Then 
         final &= saveEventUser(myID, allDropDownLists(i).SelectedValue, allEmailInputs(i).Text) 
        Else 
         error.InnerHtml = "error!!" 
        End If 
       End If 
      Next 

這是怎麼一切都被動態地構建:

  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" 
+0

不能產生一個「RUNAT =‘服務器’」控制,因爲它們通常預處理在.designer.vb文件被合併 –

+0

好吧,我刪除了它,我只是把它放在那裏,因爲在線我讀到,可能是這個問題,但它顯然不是 –

+0

循環運行在哪裏?您能否提供以下定義或類型:'allDropDownLists()','allEmailInputs()','final'和'saveEventUser()'。 – MaCron

回答

0

使用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 

否則,你可以建立在你有一個DropDownList的每一行的GridView,這樣你就可以控制多少行(因此 - > DropDownLists)顯示 - 如果你這個GridView控件綁定到一個數據集5個記錄,你將有5 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> 

您將填充在GridView的RowDataBound事件這些DropDownLists

+0

這不是一個選項。它必須動態構建,因爲它也會選擇它必須顯示的下拉數量。因爲這些下拉菜單將在事件中顯示,並且事件的製作者可以選擇需要多少下拉菜單。因爲最終下拉列表將被用來訂閱你的事件。 –