asp.net 作用域问题

protected void Page_Load(object sender, EventArgs e)
{
if ((string)Session["userType"] == "教务管理员")
{
btnUpLoad.Visible = true;
}
else
btnUpLoad.Visible = false;
Session["isBtnClick"] = isBtnClick;
}

bool isBtnClick = false;
protected void SearchBtn_Click(object sender, EventArgs e)
{
isBtnClick = true;
string searchCmdTxt = SearchTxt.Text.Trim();
Session["searchCmd"] = searchCmdTxt;
}
请问这里的Session["isBtnClick"] = isBtnClick;能得到相应的值吗?还是一直就是false?

一直就是false。
首先bool isBtnClick = false;是页面的成员,然后在Page_Load里面Session["isBtnClick"] = isBtnClick;相当于Session["isBtnClick"] = fasle;
单击页面回传(PostBack)时,还是先执行Page_Load,再执行 SearchBtn_Click(object sender, EventArgs e)方法,isBtnClick = true;这句并不影响Session["isBtnClick"],所以Session["isBtnClick"]还是false。
建议把单击方法中的isBtnClick = true;改成Session["isBtnClick"]=true。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-04-09
一直就是false
每一次pageload,变量就初始化.
Session["isBtnClick"]的值可以保存
相似回答