我在类的顶部声明了一个布尔变量,当在页面上选择单选按钮时,变量设置为true,但是当重新加载页面时,变量将重置为false.我处理此问题的一种方法是使用static关键字,但我不确定这是否是处理此问题的最佳方法.这是我尝试在Page_Load事件中执行操作的类,但它仍然将变量重置为false.
public class SendEmail
{
bool AllSelected;
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
AllSelected = false;
}
}
protected void rbAll_SelectedIndexChanged(object sender, EventArgs e)
{
if(rbAll.SelectedValue == "All")
AllSelected = true;
}
public Send()
{
if(AllSelected)
{
//Send Email. Never runs because AllSelected is always false;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*Orr 16
重新加载页面时,会创建页面类的新实例,因此上次服务器交互中的任何值都将丢失.如果您希望它在回发中保持持久性,请将值放入viewstate:
bool AllSelected
{
get
{
object o = ViewState["AllSelected"];
if(o == null) return false;
return (bool)o;
}
set
{
ViewState["AllSelected"] = value;
}
}
Run Code Online (Sandbox Code Playgroud)
ViewState集合以隐藏元素写入客户端浏览器中的表单,并在下次单击按钮或执行任何其他"回发"类型操作时回发并还原.
| 归档时间: |
|
| 查看次数: |
5295 次 |
| 最近记录: |