首先,我没有使用ASP.NET WebForms的经验.但是,我继承了一个非常古老的WebForm应用程序,我不时需要进行维护.这是一种情况:
有一个具有私有实例变量的用户控件.问题是,这些实例变量的值会丢失,很可能是在页面重新加载之后.到目前为止我发现的是,似乎控制类经常被重新创建.什么是有用的,将是以下问题的答案:
维护状态最常见的方法可能是使用ViewState而不是私有实例字段.例如,如果UserControl包含属性Text,则可以按如下方式定义:
public string Text
{
get { return (string) ViewState["Text"]; }
set { ViewState["Text"] = value; }
}
Run Code Online (Sandbox Code Playgroud)
您还可以将属性委派给子控件.在这种情况下,子控件将为您维护ViewState(提供的EnableViewState是true).例如:
public string Text
{
get { return MyTextBox.Text; }
set { MyTextBox.Text = value; }
}
Run Code Online (Sandbox Code Playgroud)
谷歌ViewState获取更多信息.有一些陷阱,彻底了解它是个好主意.
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |