2008-11-21 86 views
1

我有如下表添加動態面板/控制

<td class="style2"> 
    <asp:DropDownList ID="DropDownList1" runat="server"> 
     <asp:ListItem>Location</asp:ListItem> 
     <asp:ListItem>Name</asp:ListItem> 
     <asp:ListItem>SSN</asp:ListItem> 
    </asp:DropDownList> 
    <asp:DropDownList ID="DropDownList2" runat="server"> 
     <asp:ListItem>LIKE</asp:ListItem> 
     <asp:ListItem>=</asp:ListItem> 
    </asp:DropDownList> 
    <br /> 
    <br /> 
</td> 
<td valign="bottom"> 
    <asp:Button ID="btnAdd" runat="server" Text="Add" /> 
</td> 

當btnAdd點擊我要添加這些過濾器的另一行。我假設我將創建一個面板並擁有這3個控件,添加按鈕將創建一個新面板,或者創建所有控件,然後添加代碼。

編輯:: 當我btnAdd單擊,然後我想補充另一行這樣

btnAdd之前點擊

<td class="style2"> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
      <asp:ListItem>Location</asp:ListItem> 
      <asp:ListItem>Name</asp:ListItem> 
      <asp:ListItem>SSN</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="DropDownList2" runat="server"> 
      <asp:ListItem>LIKE</asp:ListItem> 
      <asp:ListItem>=</asp:ListItem> 
     </asp:DropDownList> 
     <br /> 
     <br /> 

    </td> 

btnAdd後:

<td class="style2"> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
      <asp:ListItem>Location</asp:ListItem> 
      <asp:ListItem>Name</asp:ListItem> 
      <asp:ListItem>SSN</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="DropDownList2" runat="server"> 
      <asp:ListItem>LIKE</asp:ListItem> 
      <asp:ListItem>=</asp:ListItem> 
     </asp:DropDownList> 
     <br /> 
     <br /> 
    </td> 

<tr> 
<td class="style2"> 
     <asp:DropDownList ID="DropDownList1" runat="server"> 
      <asp:ListItem>Location</asp:ListItem> 
      <asp:ListItem>Name</asp:ListItem> 
      <asp:ListItem>SSN</asp:ListItem> 
     </asp:DropDownList> 
     <asp:DropDownList ID="DropDownList2" runat="server"> 
      <asp:ListItem>LIKE</asp:ListItem> 
      <asp:ListItem>=</asp:ListItem> 
     </asp:DropDownList> 
     <br /> 
     <br /> 
    </td> 
</tr> 

回答

0

它會更容易顯示/隱藏第三個下拉列表,而不是動態添加它。

DropDownList3.Visible = true; 

當你動態地添加你進入的視圖狀態的問題,如果你沒有在正確的時間(頁面生命週期)添加它,它不值得冒這個險,如果你能避免它。

如果你必須那麼我會讓你的行進入用戶控件,並不斷添加新的實例。重新加載視圖狀態發生在初始化和加載後,所以確保你的控件在init中加載,理想情況下在所有回傳中。

+0

Trull:我編輯了我的問題 – user38230 2008-11-21 14:02:38

0

你可以在後面的代碼中做一些事情,讓你的下拉菜單可見。換句話說:

<td class="style2"> 
    <asp:DropDownList ID="DropDownList3" runat="server" Visible="false"> 
     <asp:ListItem>Location</asp:ListItem> 
     <asp:ListItem>Name</asp:ListItem> 
     <asp:ListItem>SSN</asp:ListItem> 
    </asp:DropDownList> 
    <asp:DropDownList ID="DropDownList4" runat="server" Visible="false"> 
     <asp:ListItem>LIKE</asp:ListItem> 
     <asp:ListItem>=</asp:ListItem> 
    </asp:DropDownList> 

而後面的代碼就會有這個在button_OnClick事件:

DropDownList3.Visible = true; 
DropDownList4.Visilbe = true; 

當然,如果你在一個UpdatePanel做這些,就會使過渡比刷新更好整個頁面。

+0

GregD:我編輯了我的問題 – user38230 2008-11-21 14:01:45