用存储过程分页,存储过程每次选出需每页显示的记录,但是“下一页”该怎么做?

解决方案 »

  1.   

    select top 20 form TblPerson where OID not in select top PageSize*PageIndex OID from TblPerson.
      

  2.   

    传递页数给存储过程就行了,但是数据源只有一页,grid的PageSize总是1,所以我不知道怎么取下一页。
      

  3.   

    private void PageClick(object sender, System.Web.UI.WebControls.CommandEventArgs e)
    {
        CurrentPage = (int)ViewState["pageindex"];  
        try
        {
    PageCount = (int)(ViewState["pagecount"]);
        }
        catch
        {
    PageCount=int.Parse (ViewState["pagecount"].ToString ());
        }
       
        string argu=e.CommandName .Trim ().ToLower ();    switch(argu)
        {
           case "first":
             CurrentPage = 1;
             break;
           case "pre":
             if (CurrentPage > 1)
               CurrentPage -= 1;
               break;
           case "next":
               if ( CurrentPage < PageCount) 
               CurrentPage += 1;
               break;
           case"last": 
               CurrentPage = PageCount;
               break;
        }

        string[] paraArray = (string[])ViewState ["para"];    BindGrid(paraArray[0],paraArray[1],paraArray[2],this._colOrder ,paraArray[3],CurrentPage  ,paraArray[5]);

    }
      

  4.   

    1、把当前pageindex保存起来,下一页就pageindex++。
    2、将所有的记录数目取出来,告诉DataGrid,它会自己帮你解决页码的问题。DataGrid1.VirtualItem=总记录数。