0

System.Web.UI.WebControls.Panel用来持有一个FormTable。在FormTable我在PostBack 事件上添加更多控件,然后将其添加回System.Web.UI.WebControls.Panel. 在这种情况下,我不想丢失现有控件的状态,并且想向FormTable. 这将再次分配给System.Web.UI.WebControls.Panel.

如果我清除System.Web.UI.WebControls.Panel然后添加新FormTable的(现在添加了一些控件),那么这将正常工作,但控件的状态将丢失。

我需要添加更多控件,保持现有控件的状态不变。我怎样才能实现它?

例如。

Panel->FormTable 正在举行

TextBox1 : 1
TextBox2 : 2

在按钮上动态单击我向它添加了一个 TextBox:

TextBox1 : "1"
TextBox2 : "2"
TextBox3 : "3"

但是为了添加第三个 TextBox3,我必须清除 FormTable,否则它会抛出与控件 ID 相关的异常,说之前的控件状态与您这次分配的状态不匹配。

如果我明确System.Web.UI.WebControls.Panel然后添加了新的 FormTable 然后 TextBoxes 将被添加但它们的状态将丢失并且输出将是这样的:

TextBox1 : ""
TextBox2 : ""
TextBox3 : ""

>> 我想向它添加更多信息。在向我的 FormTable 动态添加新项目时。我将在表格中的任何位置添加这些新项目,因此控件的 ID 将不再与 FormTable 中先前创建的控件 ID 匹配。

例如,在FormTable 中的第4 位,我可以动态插入一个超链接,以前是一个文本框。将 TextBox 移动到位置 5。

4

1 回答 1

0

将您想要保持状态的所有内容包装在 Updatepanel 中,以便在没有回发的情况下部分呈现。:

  <asp:ScriptManager ID="ScriptManager1" 
                               runat="server" />
            <asp:UpdatePanel ID="UpdatePanel1"
                             runat="server">
                <ContentTemplate>
                           //content
                </ContentTemplate>
           </asp:UpdatePanel>
于 2013-10-25T06:26:54.217 回答