编辑后会话仍然相同

时间:2013-02-28 03:52:07

标签: asp.net

多次按下下一个按钮后,

调试信息总是如下, 它可以从第1页到第2页但不能转到第3页

最后我发现问题是

Session["jobsearch"] = js;

它已保存,但下次我检索到它,就好像之前没有保存

调试消息

before js.CurrentPageNo=1
after js.CurrentPageNo=2
js.StartIndex=13
js.PageSize=24
js.TotalPageFound=5
js.CurrentPageNo=2
rowPerPage=12
before js.CurrentPageNo=1
after js.CurrentPageNo=2
js.StartIndex=13
js.PageSize=24
js.TotalPageFound=5
js.CurrentPageNo=2
rowPerPage=12


js.StartIndex=13js.PageSize=24js.TotalPageFound=5js.CurrentPageNo=2rowPerPage=12
js.StartIndex=13js.PageSize=24js.TotalPageFound=5js.CurrentPageNo=2rowPerPage=12
js.StartIndex=13js.PageSize=24js.TotalPageFound=5js.CurrentPageNo=2rowPerPage=12
js.StartIndex=13js.PageSize=24js.TotalPageFound=5js.CurrentPageNo=2rowPerPage=12

下一个按钮代码

protected void btnNext_OnClick(object sender, EventArgs e)
    {
        if (Session["jobsearch"] != null)
        {
            JobSearch js = (JobSearch)Session["jobsearch"];
            js.CurrentPageNo++;
            js.StartIndex = js.StartIndex + rowPerPage;
            js.PageSize = js.PageSize + rowPerPage;

            Session["jobsearch"] = js;
            if (jobResultsTable.DocumentContent.Contains("Jobs In Engineering"))
            {
                Session["jobsearch2"] = "Jobs In Engineering";
            }
            else
            {
                Session["jobsearch2"] = "Jobs In IT";
            }

            System.IO.File.AppendAllText(@"D:\Debug.txt", "js.StartIndex=" + js.StartIndex);
            System.IO.File.AppendAllText(@"D:\Debug.txt", "js.PageSize=" + js.PageSize);
            System.IO.File.AppendAllText(@"D:\Debug.txt", "js.TotalPageFound=" + js.TotalPageFound);
            System.IO.File.AppendAllText(@"D:\Debug.txt", "js.CurrentPageNo=" + js.CurrentPageNo);
            System.IO.File.AppendAllText(@"D:\Debug.txt", "rowPerPage=" + rowPerPage);

            GetJobSearchBOResult(js.StartIndex, js.PageSize, js.JobType, js.JobCountry, js.Keywords);

            ShowButton(js.CurrentPageNo, js.TotalPageFound);

            ltrPageInfo.Text = "Page " + js.CurrentPageNo + " of " + js.TotalPageFound.ToString() + "<br/> Total Record(s) Found: " + TotalJobFound;
        }
    }

1 个答案:

答案 0 :(得分:2)

我打赌那个

(JobSearch)Session["jobsearch"];

正在页面的load event-handler或init event-handler中重置每个页面加载。

请记住,每次回发都会触发这两个事件。

您可能需要检查load / init处理程序中的if (!Page.IsPostBack){ /*Only Init jobsearch here */ }

我设置了一个断点,只要你有代码重置或初始化你的会话变量,然后看看这些断点是否比你想象的更频繁。