我将bool
字段声明为:
public static bool isSaved = false;
和按钮代码(简化)为:
protected void SaveButton_Click(object sender, EventArgs e)
{
//Some other code
//UPDATE isSaved
isSaved = true;
}//END SaveButton_Click
出于某种原因,点击isSaved
时,SaveButton
未更新。有没有已知的技术原因?
答案 0 :(得分:1)
请始终牢记,默认情况下,如果您的应用程序未收到任何请求,则应用程序实例将从内存中过期并卸载。然后所有静态变量都将丢失!如果它们对于您的应用程序不是绝对必要的,请尽量避免使用静态变量。
答案 1 :(得分:0)
1)看一下ASPNET页面生命周期......有一个特定的方法执行顺序...... https://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx
在您的情况下,click事件处理程序将在页面加载方法之后执行,这就是为什么您看到它仍然保留以前的值。
2)也许不使用静态变量但使用session / application / viewstate对象?取决于您的设计,以决定哪一个最适合您的需求。
3)尝试在页面的预呈现阶段呈现标签文本...如果您是ASPNET的新手,您将不会特别头疼。或者甚至更好,而不是设置标志,然后使用此值来呈现文本...为什么不直接在按钮单击事件上设置文本? (可能要求您在页面加载时不执行任何操作)