本人C#新手, 刚上手
现遇到一问题,就是:动态加载一个用户控件(用于记录分页,用户控件里面没有对数据库操作的),点击下一页,文字是变了,可是变量却怎么都不变 RecordCount.Text = _RecordCount.ToString();
PageCount.Text = _PageCount.ToString();
CurPage.Text = _PageNow.ToString(); _IO.Alert("当前页:" + _PageNow,this.Page);
反应情况:刚打开页面的时候,弹出窗口为:“当前页:1”,Lable[CurPage]的文字为1,记录为正确
点击下一页,弹出窗口为:“当前页:1”,Lable[CurPage]的文字为2,记录为正确
再次点击下一页,弹出窗口为:“当前页:1”,Lable[CurPage]的文字为2,记录为正确
一直就这样了
public void doPrev(object sender, EventArgs e)
{
_PageNow = 1;
doSubmit(this, new EventArgs());
} public void doFirst(object sender, EventArgs e)
{
if (_PageNow > 1)
{
_PageNow = _Prev;
doSubmit(this, new EventArgs());
}
} public void doNext(object sender, EventArgs e)
{
if (_PageNow < _PageCount)
{
_PageNow = _Next;
doSubmit(this, new EventArgs());
}
} public void doLast(object sender, EventArgs e)
{
_PageNow = _PageCount;
doSubmit(this, new EventArgs());
} public void doChange(object sender, EventArgs e)
{
int _CurInt = _Math.Parse(intage.Text.Trim());
if (_CurInt < 1 || _CurInt > _PageCount)
{
return;
}
_PageNow = _CurInt;
doSubmit(this, new EventArgs());
} public void doSubmit(object sender, EventArgs e)
{
//_IO.Alert("#" + _PageNow, this.Page);
Change(this, new EventArgs());
}
现遇到一问题,就是:动态加载一个用户控件(用于记录分页,用户控件里面没有对数据库操作的),点击下一页,文字是变了,可是变量却怎么都不变 RecordCount.Text = _RecordCount.ToString();
PageCount.Text = _PageCount.ToString();
CurPage.Text = _PageNow.ToString(); _IO.Alert("当前页:" + _PageNow,this.Page);
反应情况:刚打开页面的时候,弹出窗口为:“当前页:1”,Lable[CurPage]的文字为1,记录为正确
点击下一页,弹出窗口为:“当前页:1”,Lable[CurPage]的文字为2,记录为正确
再次点击下一页,弹出窗口为:“当前页:1”,Lable[CurPage]的文字为2,记录为正确
一直就这样了
public void doPrev(object sender, EventArgs e)
{
_PageNow = 1;
doSubmit(this, new EventArgs());
} public void doFirst(object sender, EventArgs e)
{
if (_PageNow > 1)
{
_PageNow = _Prev;
doSubmit(this, new EventArgs());
}
} public void doNext(object sender, EventArgs e)
{
if (_PageNow < _PageCount)
{
_PageNow = _Next;
doSubmit(this, new EventArgs());
}
} public void doLast(object sender, EventArgs e)
{
_PageNow = _PageCount;
doSubmit(this, new EventArgs());
} public void doChange(object sender, EventArgs e)
{
int _CurInt = _Math.Parse(intage.Text.Trim());
if (_CurInt < 1 || _CurInt > _PageCount)
{
return;
}
_PageNow = _CurInt;
doSubmit(this, new EventArgs());
} public void doSubmit(object sender, EventArgs e)
{
//_IO.Alert("#" + _PageNow, this.Page);
Change(this, new EventArgs());
}
开始我拿到代码也是翻到第二页就翻不动了。
你这个问题是应该是要实时把你的分页信息保存记录下来。
我是放到Session里,每翻一页就把当前页的page类信息保存下来,再翻页的时候再在上一步保存的基础上改动。
你现在这样应该是没有将翻页后的数据保存,而每次翻页改的都是你Page类里的初始数据。
比如Page类里Current_PageIndex的初始值是1,你翻第二页的时候1+1=2,成功翻到第二页,再翻第三页,改的还是你的初始值1,而不是你刚才翻页操作后的数据。希望对你有帮助。
{
ViewState["变量名"]=变量;
}然后使用 ViewState["变量名"]
设一个断点跟一下就知道了,看看翻第三页的时候为什么分页信息没有变化。
这样应该能很清楚的知道问题出在哪里。//我的下一页的按钮事件代码,举个例子你看看
protected void btnNP_Click(object sender, EventArgs e)
{
PageInfo = GetPageInfoFromSession();//PageInfo是分页信息类,点下一页的时候从Session里取出上一步操作的后的分页信息。当然如果刚打开页面还未操作Session里肯定没东西。第一步操作用的肯定是Page的初始信息。
PageInfo.CurrentPage = (PageInfo.CurrentPage < PageInfo.PageCount) ? PageInfo.CurrentPage + 1 : PageInfo.PageCount;//当前页+1
PutPageInfoToSession();//将改变后的信息保存到Session中
//然后就是绑定列表控件,刷新了
}