我在 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。)