protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
lblPostBack.Text = " Text created first time";
}
else
{
if (Session["Counter"] == null)
{
lblPostBack.Text = "PostBack x however strange becasue if is postback it's mean somebody clicked button and session value has been created";
}
else
{
lblPostBack.Text = "PostBack x should be count here";
}
}
}
protected void cmd_Click(object sender, EventArgs e)
{
int _counter;
if (Session["Counter"] == null)
{
_counter = 1;
}
else
{
_counter = (int)Session["Counter"] + 1;
}
Session["Counter"] = _counter;
lblPostBack.Text += "Counter: " + _counter.ToString();
}
答案 0 :(得分:2)
假设这是ASP.NET:这是因为您的按钮上的Click事件在页面上的Load事件之后触发,因此尚未设置会话。
MSDN on the page lifecycle可能是很好的阅读 - 按钮点击是该文档表格中的“回发事件”。
如果我有错误的结束,请解释按钮点击后您收到的消息,以及您的期望。问题上的一些框架和语言标签可能也不会出错。
答案 1 :(得分:0)
好的确有效,只是FF搞砸了
答案 2 :(得分:0)
我添加了以下方法并且工作正常。
private int _counter;
protected void Page_Load(object sender, EventArgs e)
{
(...)
protected void Page_PreRender(Object sender,EventArgs e) { Session [“Counter”] = _counter; }