我有下表
<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 :(得分:0)
显示/隐藏第三个下拉列表会更容易,而不是动态添加它。
DropDownList3.Visible = true;
当你动态添加时,如果你没有在正确的时间(页面生命周期)添加它,你会遇到viewstate问题,如果你能避免它就不值得麻烦。
如果必须,那么我会将您的行设置为用户控件,并继续添加新的实例。重新加载viewstate发生在init之后和加载之后,所以确保你的控件在init中理想地加载到所有回发中。
答案 1 :(得分: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;
当然,如果你在更新面板上执行这些操作,它将使转换比刷新整个页面更好。