办法有很多
这里有个挺别致的 (-:http://blog.joycode.com/ghj/posts/15977.aspx

解决方案 »

  1.   

    <%@ Import Namespace="System.Data" %><html>
     
    <script language="C#" runat="server">    ICollection CreateDataSource() {
            DataTable dt = new DataTable();
            DataRow dr;        dt.Columns.Add(new DataColumn("整数值", typeof(Int32)));
            dt.Columns.Add(new DataColumn("字符串值", typeof(string)));
            dt.Columns.Add(new DataColumn("日期时间值", typeof(string)));
            dt.Columns.Add(new DataColumn("布尔值", typeof(bool)));        for (int i = 0; i < 200; i++) {
                dr = dt.NewRow();            dr[0] = i;
                dr[1] = "项 " + i.ToString();
                dr[2] = DateTime.Now.ToShortDateString();
                dr[3] = (i % 2 != 0) ? true : false;            dt.Rows.Add(dr);
            }        DataView dv = new DataView(dt);
            return dv;
        }    void Page_Load(Object sender, EventArgs e) {
            if (chk1.Checked) {
                MyDataGrid.PagerStyle.Visible=true;
            }
            else {
                MyDataGrid.PagerStyle.Visible=false;
            }        BindGrid();
        }    void PagerButtonClick(Object sender, EventArgs e) {
            //由外部分页 UI 使用
            String arg = ((LinkButton)sender).CommandArgument;        switch(arg)
            {
                case ("Next"):
                    if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
                        MyDataGrid.CurrentPageIndex ++;
                    break;
                case ("前一项"):
                    if (MyDataGrid.CurrentPageIndex > 0)
                        MyDataGrid.CurrentPageIndex --;
                    break;
                case ("最后一项"):
                    MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
                    break;
                default:
                    //页码
                    MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
                    break;
            }
            BindGrid();
        }    void MyDataGrid_Page(Object sender, DataGridPageChangedEventArgs e) {
            //由内置页导航使用。CurrentPageIndex 已设置
            MyDataGrid.CurrentPageIndex = e.NewPageIndex;
            BindGrid();
        }    void BindGrid() {
            MyDataGrid.DataSource = CreateDataSource();
            MyDataGrid.DataBind();
            ShowStats();
        }    void ShowStats() {
            lblCurrentIndex.Text = "CurrentPageIndex 为 " + MyDataGrid.CurrentPageIndex;
            lblPageCount.Text = "PageCount 为 " + MyDataGrid.PageCount;
        }
    </script><body>    <h3><font face="宋体">提供备用分页 UI</font></h3>    <form runat=server>      <ASP:DataGrid id="MyDataGrid" runat="server"
            AllowPaging="True"
            PageSize="10"
            PagerStyle-Mode="NumericPages"
            PagerStyle-HorizontalAlign="Right"
            OnPageIndexChanged="MyDataGrid_Page"
            BorderColor="black"
            BorderWidth="1"
            GridLines="Both"
            CellPadding="3"
            CellSpacing="0"
            Font-Name="宋体"
            Font-Size="8pt"
            HeaderStyle-BackColor="#aaaadd"
            AlternatingItemStyle-BackColor="#eeeeee"
            />      <p>
          <asp:LinkButton id="btnPrev" runat="server"
            Text="上一页"
            CommandArgument="前一项"
            ForeColor="navy"
            Font-Name="verdana" Font-size="8pt"
            OnClick="PagerButtonClick"
            />
          &nbsp;
          <asp:LinkButton id="btnNext" runat="server"
            Text="下一页"
            CommandArgument="Next"
            ForeColor="navy"
            Font-Name="verdana" Font-size="8pt"
            OnClick="PagerButtonClick"
            />
          &nbsp;
          <asp:LinkButton id="btnPage8" runat="server"
            Text="转到第 8 页"
            CommandArgument="7"
            ForeColor="navy"
            Font-Name="verdana" Font-size="8pt"
            OnClick="PagerButtonClick"
            />
          &nbsp;
          <asp:LinkButton id="btnFirst" runat="server"
            Text="转到第一页"
            CommandArgument="0"
            ForeColor="navy"
            Font-Name="verdana" Font-size="8pt"
            OnClick="PagerButtonClick"
            />
          &nbsp;
          <asp:LinkButton id="btnLast" runat="server"
            Text="转到最后一页"
            CommandArgument="最后一项"
            ForeColor="navy"
            Font-Name="verdana" Font-size="8pt"
            OnClick="PagerButtonClick"
            />
          <p>
          <asp:Checkbox id="chk1" runat="server"
            Text="显示内置页导航"
            Font-Name="Verdana"
            Font-Size="8pt"
            AutoPostBack="true"
            />      <p>
          <table bgcolor="#eeeeee" cellpadding="6"><tr><td nowrap><font face="宋体" size="-2">        <asp:Label id="lblCurrentIndex" runat="server" /><br>
            <asp:Label id="lblPageCount" runat="server" /><br>      </font></td></tr></table>
      </form></body>
    </html>