想要自己写DataGrid的分页,给些帮助最好是由例子可以参考,谢谢了

解决方案 »

  1.   

    给个思路  分页处理放在存储过程里(这个随便你自己,用C#的PagedDataSource也行)自己定义分页按钮  把所有按钮的事件写在一个函数里  另外自己再写个绑定方法
    大概就这样  给段代码参考吧!前台代码(aspx) 定义了些分页的控件:
    <table border="0" id="LabelInfo" runat="server">
       <tr>
    <td class="text12" align="center"><font color="#666666"><FONT face="宋体"><asp:linkbutton id="btnFirst" runat="server" CommandArgument="first" CausesValidation="False">首页</asp:linkbutton>&nbsp;&nbsp;
    <asp:linkbutton id="btnPre" runat="server" CommandArgument="prev" CausesValidation="False">前一页</asp:linkbutton>&nbsp;
    <asp:linkbutton id="btnNext" runat="server" CommandArgument="next" CausesValidation="False">后页</asp:linkbutton>&nbsp;
    <asp:linkbutton id="btnLast" runat="server" CommandArgument="last" CausesValidation="False">末页</asp:linkbutton>&nbsp;
    <asp:textbox id="txtGoPage" runat="server" Width="48px"></asp:textbox><asp:button id="btnGo" runat="server" CommandArgument="Go" CausesValidation="False" Text="Go"></asp:button>&nbsp;
    <asp:label id="lblCurrentIndex" runat="server">当前页数:</asp:label>&nbsp;
    <asp:label id="lblPageCount" runat="server">总页数:</asp:label></FONT>&nbsp; </font>
    </td>
       </tr>
    </TR></table>
    后台cs:
    private void PageChange_Click(object sender, System.EventArgs e)
    {
    string cmdType = "";
    if(sender.GetType().Name == "LinkButton")
    {
    cmdType = ((LinkButton)sender).CommandArgument;
    }
    else if(sender.GetType().Name == "Button")
    {
    cmdType = ((Button)sender).CommandArgument;
    } switch(cmdType)
    {
    case "first":
    if(txtPageSize.Text.Trim() != "")
    DataBind(pagesize,1);
    break;
    case "prev":
    if(txtPageSize.Text.Trim() != "")
    {
    if(int.Parse(lblCurrentIndex.Text.Trim().Split(':')[1]) != 1)
    DataBind(pagesize,int.Parse(lblCurrentIndex.Text.Trim().Split(':')[1])-1);
    }
    break;
    case "next":
    if(txtPageSize.Text.Trim() != "")
    {
    if(int.Parse(lblCurrentIndex.Text.Trim().Split(':')[1]) < int.Parse(lblPageCount.Text.Trim().Split(':')[1]))
    DataBind(pagesize,int.Parse(lblCurrentIndex.Text.Trim().Split(':')[1])+1);
    }
    break;
    case "last":
    if(txtPageSize.Text.Trim() != "")
    DataBind(pagesize,int.Parse(lblPageCount.Text.Trim().Split(':')[1]));
    break;
    case "Go":
    if(txtGoPage.Text.Trim() != "")
    DataBind(pagesize,Convert.ToInt32(this.txtGoPage.Text.Trim()));
    break;
    }
    }DataBind()这个方法是实现数据绑定的 
    private void DataBind(int argpagesize,int argcurrentpage)
    {
    string phitemcd = this.ddlPhItemName.SelectedValue;
    FIFARewardItem itemObj = new FIFARewardItem();
    dgList.DataSource = itemObj.ListPhItemWinner(argpagesize,argcurrentpage,phitemcd,out pagecount);
    dgList.DataBind();
    IniLabelInfo(argcurrentpage,pagecount);
    }大概思路就这样  根据你自己的需求再看吧
      

  2.   

    http://singlepine.cnblogs.com/archive/2005/11/21/281425.htmlhttp://singlepine.cnblogs.com/archive/2005/11/01/266538.html