const string vsKey = "searchCriteria";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!this.Page.IsPostBack)
        {
             DataBinder(string.Empty);
        }
    } private void DataBinder(string strContext)
    {
        DataSet dscount = BLL.UserInfoBLL.GetUserCount(strContext);
        this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString());
        int startIndex = AspNetPager.CurrentPageIndex;
        DataView dv = BLL.UserInfoBLL.GetUserCountPage(AspNetPager.PageSize, startIndex, strContext);
        PagedDataSource pgs = new PagedDataSource();        pgs.DataSource = dv;
        pgs.AllowPaging = true;
        pgs.CurrentPageIndex = AspNetPager.CurrentPageIndex - 1;
        pgs.PageSize = AspNetPager.PageSize;
        this.Repeater.DataSource = pgs;
        this.Repeater.DataBind();
    }protected void AspNetPager_PageChanged(object src, EventArgs e)
    {
        DataBinder((string)ViewState[vsKey]);
    }
 protected void btnSelect_Click(object sender, EventArgs e)
    {
        AspNetPager.CurrentPageIndex = 1;
        string s = txtSelect.Text.Trim();
        ViewState[vsKey] = s;
        DataBinder(s);
    }不知道是哪里出问题了。这个分页我弄了2天了,还是不行。这代码,基本上就跟例子上的一样的。不知道为啥我这个不行
大家帮忙看一下。解决给分!

解决方案 »

  1.   

    还有这个 <webdiyer:AspNetPager ID="AspNetPager" OnPageChanged="AspNetPager_PageChanged" runat="server"
                HorizontalAlign="Center" PagingButtonSpacing="8Px" UrlPaging="true" UrlPageIndexName="p"
                PageSize="7" CssClass="pages" CurrentPageButtonClass="cpb" FirstPageText="首页"
                LastPageText="末页" NextPageText="下一页" PrevPageText="上一页" ShowMoreButtons="false"
                ShowPageIndexBox="Never" AlwaysShow="true">
            </webdiyer:AspNetPager>
      

  2.   

    this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString()); 这个应该有误吧。
    this.AspNetPager.RecordCount = dscount. Items.Count;
      

  3.   


    不是额 dscount 是我专门查询 总记录数的, select count(*) from table  
      

  4.   

    protected void AspNetPager_PageChanged(object src, EventArgs e)
      {
      DataBinder((string)ViewState[vsKey], this.AspNetPager1.StartRecordIndex - 1));
      }
     分页你也要知道取第多少条记录把。
      

  5.   

    前台<div>
            <asp:GridView ID="gdvData" runat="server" CellPadding="4" ForeColor="#333333" GridLines="None"
                Width="100%">
                <FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <RowStyle BackColor="#EFF3FB" />
                <EditRowStyle BackColor="#2461BF" />
                <SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
                <PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
                <HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
            </asp:GridView>
            <webdiyer:aspnetpager id="AspNetPager1" runat="server" PageSize="5" AlwaysShow="True" OnPageChanged="AspNetPager1_PageChanged" ShowCustomInfoSection="Left" CustomInfoSectionWidth="40%" ShowPageIndexBox="always" PageIndexBoxType="TextBox"
        CustomInfoHTML="第<font color='red'><b>%currentPageIndex%</b></font>页,共%PageCount%页" Width="100%"></webdiyer:aspnetpager>
        </div>后台:protected void Page_Load(object sender, EventArgs e)
        {
            if(!IsPostBack)
            {
                AspNetPager1.RecordCount = DBHelper.GetCount();//得到数据的总数
                this.gdvDataBind();//绑定
            }
    }
    protected void AspNetPager1_PageChanged(object sender, EventArgs e)
        {
            this.gdvDataBind();
        }    protected void gdvDataBind()
        {
            this.gdvData.DataSource = DBHelper.GetKbhelpQuestion(AspNetPager1.PageSize, AspNetPager1.CurrentPageIndex,0,0,0,0,"","","ID");//GetKbhelpQuestion方法里面用的是分页存储过程
            this.gdvData.DataBind();
        }
      

  6.   

    public string strFlag
    {
    get{return viewstate["strflag"].toString();}
    set{viewstate["strflag"]=value;}
    }
    在点击搜索的时候strFlag=txtSelect.Text.Trim();
    private void DataBinder(string strContext)不要参数,直接把strContext改成strFlag。
    试试
      

  7.   

    http://blog.csdn.net/luojianfengVS2005+SQL SERVER 2000+AspNetPager1 分页存储
      

  8.   

    没有看 你的 代码 
    参考我的 
    -------------------------------------
    DataCon myCon = new DataCon();
        DataOperate sqlBind = new DataOperate();
        SqlConnection sqlconn;
        protected void Page_Load(object sender, EventArgs e)
        {
            dlBind();
        }
        public void dlBind()
        {
            int curpage = Convert.ToInt32(this.labPage.Text);
            PagedDataSource ps = new PagedDataSource();
            sqlconn = myCon.getCon();
            sqlconn.Open();
            string sqlstr = "select a.*,b.* from tb_Card as a join tb_Module as b on a.ModuleID=b.ModuleID";
            SqlDataAdapter MyAdapter = new SqlDataAdapter(sqlstr, sqlconn);
            DataSet ds = new DataSet();
            MyAdapter.Fill(ds, "tb_Card");
            ps.DataSource = ds.Tables["tb_Card"].DefaultView;
            ps.AllowPaging = true; //是否可以分页
            ps.PageSize = 2; //显示的数量
            ps.CurrentPageIndex = curpage - 1; //取得当前页的页码
            this.lnkbtnUp.Enabled = true;
            this.lnkbtnNext.Enabled = true;
            this.lnkbtnBack.Enabled = true;
            this.lnkbtnOne.Enabled = true;
            if (curpage == 1)
            {
                this.lnkbtnOne.Enabled = false;//不显示第一页按钮
                this.lnkbtnUp.Enabled = false;//不显示上一页按钮
            }
            if (curpage == ps.PageCount)
            {
                this.lnkbtnNext.Enabled = false;//不显示下一页
                this.lnkbtnBack.Enabled = false;//不显示最后一页
            }
            this.labBackPage.Text = Convert.ToString(ps.PageCount);
            this.dlContent.DataSource = ps;
            this.dlContent.DataKeyField = "CardID";
            this.dlContent.DataBind();
        }
        protected void lnkbtnOne_Click(object sender, EventArgs e)
        {
            this.labPage.Text = "1";
            this.dlBind();
        }
        protected void lnkbtnUp_Click(object sender, EventArgs e)
        {
            this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) - 1);
            this.dlBind();
        }
        protected void lnkbtnNext_Click(object sender, EventArgs e)
        {
            this.labPage.Text = Convert.ToString(Convert.ToInt32(this.labPage.Text) + 1);
            this.dlBind();
        }
        protected void lnkbtnBack_Click(object sender, EventArgs e)
        {
            this.labPage.Text = this.labBackPage.Text;
            this.dlBind();
        }
      

  9.   

    如果用Url的方式分页,每次都是重新打开页面,没有postback,控件的值和viewstate都会清空。
    所以只有2个办法
    1是改用postback的方式分页
    2如果必须用url的方式,那么必须把需要保持的状态通过url传递,然后在打开页面时解析url得到状态。你可以看下google怎么分页的
      

  10.   


                AspNetPager1.PageSize = PageSize;
                AspNetPager1.RecordCount = recordCount;
                AspNetPager1.UrlPaging = true;
                AspNetPager1.EnableUrlRewriting = true;
                AspNetPager1.UrlRewritePattern = "Itemlist.aspx?pageIndex={0}&key=" + txtKey.Value+
                                                                            "&ClassId=" + HidClassId.Value + 
                                                                            "&second=" + Hidsecond.Value + 
                                                                            "&AdminId=" + selAdminId.SelectedValue + 
                                                                            "&Shelf=" + ddlShelf.SelectedValue +
                                                                            "&isend=" + Hidfiled.Value + "";
                AspNetPager1.ShowPageIndexBox = Wuqi.Webdiyer.ShowPageIndexBox.Always;
                AspNetPager1.PageIndexBoxType = Wuqi.Webdiyer.PageIndexBoxType.TextBox;
      

  11.   

    AspNetPager.CurrentPageIndex = 1这句话去掉
      

  12.   

    protected void Page_Load(object sender, EventArgs e)
        {
                int totalOrders = NewPLManager.GetAllByStu(nid).Count;
                AspNetPager1.RecordCount = totalOrders;
                this.AspNetPager1.PageSize = 8; // 每页显示X条记录
    }    #region 分页显示数据
        void bindData()
        {
            //分页查询方法
            int nid = Convert.ToInt32(Request.QueryString["nid"]);
            Repeater1.DataSource = (List<NewPL>)NewPLManager.AdminPage(AspNetPager1.StartRecordIndex, AspNetPager1.EndRecordIndex, nid);
            Repeater1.DataBind();//数据绑定
        }
        protected void AspNetPager1_PageChanged(object src, EventArgs e)
        {
            bindData();
        }
        #endregion
    代码都贴给你了 .. 把一些方法改掉就可以了
      

  13.   


    int nid = Convert.ToInt32(Request.QueryString["nid"]);
    这是啥意思啊?
      

  14.   

    你用了PagesDataSource类了 还用AspNetPager干啥,脱裤子放屁啊。两个都是分页的,自找麻烦
      

  15.   

    我不懂额,这是看那个aspnetpager控件自带的例子里面这样搞的,不过不知道啥意思。
      

  16.   

    http://topic.csdn.net/u/20100920/11/74868958-242c-4640-9062-fe4a3fa569a6.html?seed=1542523462&r=68534465#r_68534465
      

  17.   


    const string vsKey = "searchCriteria";
      protected void Page_Load(object sender, EventArgs e)
      {
      if (!this.Page.IsPostBack)
      {
      ViewState[vsKey]=Request.QueryString["SearchFor"];
      DataBinder(Request.QueryString["SearchFor"]);
      }
      } private void DataBinder(string strContext)
      {
      DataSet dscount = BLL.UserInfoBLL.GetUserCount(strContext);
      this.AspNetPager.RecordCount = int.Parse(dscount.Tables[0].Rows[0][0].ToString());
      int startIndex = AspNetPager.CurrentPageIndex;
      DataView dv = BLL.UserInfoBLL.GetUserCountPage(AspNetPager.PageSize, startIndex, strContext);
      PagedDataSource pgs = new PagedDataSource();  pgs.DataSource = dv;
      pgs.AllowPaging = true;
      pgs.CurrentPageIndex = AspNetPager.CurrentPageIndex - 1;
      pgs.PageSize = AspNetPager.PageSize;
      this.Repeater.DataSource = pgs;
      this.Repeater.DataBind();
      }protected void AspNetPager_PageChanged(object src, EventArgs e)
      {
      DataBinder((string)ViewState[vsKey]);
      }
     protected void btnSelect_Click(object sender, EventArgs e)
      { 
      string s = txtSelect.Text.Trim();
      Response.Redirect(Request.Path+"?SearchFor="+HttpUtility.UrlEncode(s),true);
      }
    AspNetPager_PageChanged可以去掉,Url方式可能不会触发AspNetPager_PageChanged事件。