我在页面中有2个Asp按钮(buttonUsername和buttonReset)。第一个执行AD搜索,并设置私有变量,而第二个按钮执行操作,使用先前设置的变量。
public partial class ResetPassword : System.Web.UI.Page {
private UserPrincipal tmpPwdUser;
protected void buttonUsername_Click(object sender, EventArgs e) {
this.tmpPwdUser = ...
}
protected void buttonReset_Click(object sender, EventArgs e) {
myObj.myFunction(this.tmpPwdUser); // --> this.tmpPwdUser is void
}
}
我的问题:this.tmpPwdUser
已在buttonUsername_Click
函数中正确设置,但触发buttonReset_Click
事件时,变量this.tmpPwdUser
为null
。我想当触发事件时,会重新加载页面,因此会重置每个局部变量。点击按钮时有没有办法保存状态?
答案 0 :(得分:2)
正如您所怀疑的那样,为新请求创建了一个新的表单实例。您必须在这些请求之间保留变量的值。一种方法是将值存储在ViewState中。
您可以创建一个帮助器属性,用于存储和检索ViewState中的值:
private UserPrincipal TmpPwdUser
{
get
{
return ViewState["UniqueViewStateKey"] As UserPrincipal;
}
set
{
ViewState["UniqueViewStateKey"] = value;
}
}
答案 1 :(得分:0)
尝试使用OnEvent属性而不是onclick
按钮上的Poperty(OnCommand =“Submit_Command”) 在代码背后 Submit_Command(对象发送者,CommandEventArgs e) { }