2

多次按下next按钮后调试信息总是如下,它可以从第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;
        }
    }
4

1 回答 1

2

我敢打赌

(JobSearch)Session["jobsearch"];

在页面的加载事件处理程序或初始化事件处理程序中重置每个页面加载。

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

您可能需要检查if (!Page.IsPostBack){ /*Only Init jobsearch here */ }您的加载/初始化处理程序

我会在您有重置或初始化会话变量的代码的任何地方设置一个断点,然后查看这些断点是否比您想象的更频繁地被击中。

于 2013-02-28T04:25:56.207 回答