我正在使用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
(现在添加了一些控件),那么这样可以正常工作,但控件的状态将会丢失。
我需要添加更多控件,保持现有控件的状态不变。我怎样才能实现它?
EG。
Panel-> FormTable正在举行
TextBox1 : 1
TextBox2 : 2
动态点击按钮我再添加一个TextBox:
TextBox1 : "1"
TextBox2 : "2"
TextBox3 : "3"
但是为了添加第3个TextBox3,我将不得不清除FormTable,否则它将抛出与Controls的ID相关的异常,说先前的Control States与你这次分配的状态不匹配。
如果我清除了System.Web.UI.WebControls.Panel
然后添加了新的FormTable,那么将添加TextBoxes,但它们的状态将会丢失,输出将如下所示:
TextBox1 : ""
TextBox2 : ""
TextBox3 : ""
>> 我想为它添加更多信息。在动态添加新项目到我的FormTable时。我将在表中的任何位置添加这些新项目,这样Control的ID将不再与FormTable中先前创建的Controls ID相匹配。
E.g。在FormTable的第4位,我可以动态插入以前是TextBox的HyperLink。将TextBox移动到位置5。
答案 0 :(得分:0)
将要保留状态的所有内容包装在Updatepanel中,以便在没有回发的情况下部分呈现。 :
<asp:ScriptManager ID="ScriptManager1"
runat="server" />
<asp:UpdatePanel ID="UpdatePanel1"
runat="server">
<ContentTemplate>
//content
</ContentTemplate>
</asp:UpdatePanel>