本人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());
        }

解决方案 »

  1.   

    哈哈,恰好现在做的项目里前一段时间遇到和你类似的问题,连分页机制都很像。
    开始我拿到代码也是翻到第二页就翻不动了。
    你这个问题是应该是要实时把你的分页信息保存记录下来。
    我是放到Session里,每翻一页就把当前页的page类信息保存下来,再翻页的时候再在上一步保存的基础上改动。
    你现在这样应该是没有将翻页后的数据保存,而每次翻页改的都是你Page类里的初始数据。
    比如Page类里Current_PageIndex的初始值是1,你翻第二页的时候1+1=2,成功翻到第二页,再翻第三页,改的还是你的初始值1,而不是你刚才翻页操作后的数据。希望对你有帮助。
      

  2.   

    楼上那位大哥,能不能说清楚点,ViewState对此有帮助啊
      

  3.   

    if(!IsPostBack)
    {
      ViewState["变量名"]=变量;
    }然后使用  ViewState["变量名"]
      

  4.   

    你要看一下你的问题是不是我说的那个原因啊。
    设一个断点跟一下就知道了,看看翻第三页的时候为什么分页信息没有变化。
    这样应该能很清楚的知道问题出在哪里。//我的下一页的按钮事件代码,举个例子你看看
    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中
             //然后就是绑定列表控件,刷新了
        }