调试信息总是如下, 它可以从第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;
}
}
答案 0 :(得分:2)
我打赌那个
(JobSearch)Session["jobsearch"];
正在页面的load event-handler或init event-handler中重置每个页面加载。
请记住,每次回发都会触发这两个事件。
您可能需要检查load / init处理程序中的if (!Page.IsPostBack){ /*Only Init jobsearch here */ }
我设置了一个断点,只要你有代码重置或初始化你的会话变量,然后看看这些断点是否比你想象的更频繁。