添加动态面板/控件

时间:2008-11-21 13:52:39

标签: asp.net visual-studio-2008

我有下表

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

2 个答案:

答案 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;

当然,如果你在更新面板上执行这些操作,它将使转换比刷新整个页面更好。