asp.net 作用域问题

来源:百度知道 编辑:UC知道 时间:2024/06/08 16:56:35
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。

一直就是false
每一次pageload,变量就初始化.
Session["isBtnClick"]的值可以保存