ASP.NET aspx按钮单击重置

时间:2013-10-28 15:19:45

标签: c# asp.net

我在页面中有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.tmpPwdUsernull。我想当触发事件时,会重新加载页面,因此会重置每个局部变量。点击按钮时有没有办法保存状态?

2 个答案:

答案 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) { }