我加载在Page_Load事件的一系列的控制。然而,我必须重新创建那些控制每个网页加载装置,该装置存储其数据别处。这是麻烦的。

protected void Page_Load(object sender, EventArgs e)
{
   MyControl control = (MyControl)LoadControl(...);
   control.Initialize(GlobalClass.controlData);
   //^gives the control the data it had previously.  
   //Or use ViewState["controlData"] if serializable.
   Controls.Add(control);
}

我觉得我应该使用if (!IsPostBack) {},但我不知道怎么了,为什么。

在相反,如果我放置控制到标记,则控制似乎留持久的。例如,在一个按钮加价会记得它的Text属性的任何改变(我想?)。

<asp:Button ID="buttonText" runat="server" 
            Text="Text Segment" onclick="buttonText_Click" />

我如何保持某种带有动态添加控件的持久性,如通过加价加控制?这将节省我很多的工作而苦恼。

感谢。

(我编写了一个小的永恒,但我ASP.NET,越多越糊涂我成为。这是什么我如何理解学习工作:-P完全相反。)

有帮助吗?

解决方案

有关动态加载对照,如果在Page_Init事件期间加载它们,则可以将它们添加到视图状态和他们将能够保留来自回发状态向回发。

其他提示

我明白你的意思。是的,这很麻烦,但这就是一个无状态技术的工作原理。

有没有实现静态控件的相同bahaviour的方式(在那些你把HTML标记)。

请我在这个答案给了提示:

访问控制动态创建的(C#)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top