-1

单击按钮时,我正在尝试向页面添加一组控件。我需要多次添加同一组控件,可能是无限次。目前,添加控件按钮单击有效,当您单击它的第 2 次、第 3 次、第 4 次...等时,它无法正常工作。它覆盖并替换了页面上当前的控件,因此只显示了一组控件。

这是我创建和添加控件的代码,这发生在点击事件中

        Label contactTypeLabel = new Label();
        contactTypeLabel.Text = "Contact Type" + contactCount.ToString();
        contactTypeLabel.ID = "contactLabel" + contactCount.ToString();
        this.panelContacts.Controls.Add(contactTypeLabel);
        DropDownList contactTypeDropDownList = new DropDownList();
        //loading dropdown
        this.panelContacts.Controls.Add(contactTypeDropDownList);
        this.panelContacts.Controls.Add(new LiteralControl("<br />"));

这是我的控件要添加到的面板..

<asp:UpdatePanel ID="UpdateContacts" runat="server">
                <ContentTemplate>
                    <asp:Panel ID="panelContacts" runat="server">

                    </asp:Panel>

                </ContentTemplate>
                <Triggers>
                    <asp:AsyncPostBackTrigger ControlID="btnAddContacts" EventName="Click" />
                </Triggers>
            </asp:UpdatePanel>

我最终做的是使用 jQuery 创建/删除控件。工作得更好,更容易!

4

3 回答 3

2

我相信中继器将是您最好的选择。

http://xaeryan.blogspot.ca/2009/09/dynamically-adding-removing-textboxes.html

它允许您动态添加所需的任何 asp.net 控件的新行。

希望这可以帮助,

于 2012-06-26T13:08:19.883 回答
0

In every postback that happens when you click the button is recreating your page. You must keep the state of the page, by adding the controls in a list or something similar in session or viewstate.

So when pageload happens, you can add the controls again.

于 2012-06-26T13:07:29.190 回答
-1

您需要了解 ASP.NET 的工作原理。这不是错误或类似问题,只是您不知道它是如何工作的。每次页面加载时,您都必须添加所有这些控件。您需要添加之前的那些人,以及“新”的人。你需要以某种方式保持一些状态

于 2012-06-26T13:05:22.857 回答