需要有关页面生命周期的帮助.
当我有一个按钮时,它的click处理程序在ViewState中存储一个值.
单击按钮时会发生回发,但如果我尝试在pageload中读取viewstate值,则会得到错误的值.
刷新页面时,需要根据viewstate中的值显示标签.
Page_Load不是一个合适的地方.
在哪个页面事件中我应该显示此标签?
所以页面加载事件流程如下:
在步骤2中,您正在从视图状态读取变量并设置标签.在步骤3中,您将在视图状态中设置值.
正如您所观察到的那样,您正在以错误的顺序使用事件.有两种方法可以解决这个问题:将标签设置器代码放在Render/Unload事件中.另一种是重构代码,使标签通过Button Click事件而不是Page_Load事件设置; 我建议将其作为正确的行动方案.
您可能想要检查ASP.NET WebForm的"页面生命周期"是什么?更好地处理页面生命周期.
代码页
<asp:Label id="id1" runat="server" text="<%=Label1Text%>" />
Run Code Online (Sandbox Code Playgroud)
代码隐藏
private string m_Label1Text;
public property string Label1Text {
get { return m_Label1Text; }
set { m_Label1Text = value; }
}
Run Code Online (Sandbox Code Playgroud)
这样,您可以通过Label1Text属性设置文本,并在呈现时将其传输到表单.如果您需要有关内联代码的更多信息,可以在此处尝试此教程.
| 归档时间: |
|
| 查看次数: |
995 次 |
| 最近记录: |