【问题标题】:Add multiple controls to asp Page向asp页面添加多个控件
【发布时间】:2012-06-26 13:02:22
【问题描述】:

我正在尝试在单击按钮时向页面添加一组控件。我需要多次添加同一组控件,可能是无限次。目前,添加控件按钮单击有效,当您单击它的第 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 创建/删除控件。工作得更好更轻松!

【问题讨论】:

标签: c# asp.net controls


【解决方案1】:

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

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

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

希望对你有帮助,

【讨论】:

    【解决方案2】:

    在您单击按钮时发生的每次回发中,都在重新创建您的页面。 您必须通过在列表中添加控件或在会话或视图状态中添加类似的东西来保持页面的状态。

    所以当页面加载发生时,您可以再次添加控件。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-11-04
        • 2022-01-23
        • 2013-12-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        相关资源
        最近更新 更多