只有设置成prevnext才可以,用数字按钮分页不行,要在显示数字按钮的同时显示上一页下一页等按钮,你可以试试我写的AspNetPager控件:http://www.webdiyer.com

解决方案 »

  1.   

    自己写分页事件,参考 private void Pagination()
    {

    PageInfo.Text = "页次:"+(ListDataGrid.CurrentPageIndex+1)+"/"+ListDataGrid.PageCount+" 每页"+ListDataGrid.PageSize+"个主题 ";
    //JumpTo.Text="" + (ListDataGrid.CurrentPageIndex+1);
    if (ListDataGrid.CurrentPageIndex == 0)
    {
    PageLink.Text="[首页] [上一页] ";
    }
    else
    {
    PageLink.Text="[<a href='dellist.aspx?id=0&Page=1'>首页</a>] [<a href='dellist.aspx?id=0&Page="+(ListDataGrid.CurrentPageIndex)+"'>上一页</a>] ";
    }
    if (ListDataGrid.CurrentPageIndex == ListDataGrid.PageCount-1)
    { PageLink.Text=PageLink.Text+"[下一页] [尾页] ";
    }
    else
    {
    PageLink.Text=PageLink.Text+"[<a href='dellist.aspx?id=0&Page="+(ListDataGrid.CurrentPageIndex+2)+"'>下一页</a>] [<a href='dellist.aspx?id=0&Page="+ListDataGrid.PageCount+"'>尾页</a>] ";
    }
    }
      

  2.   

    在datagrid的itemcreated事件中可以修改,例
    public void ItemCreated(Object sender, DataGridItemEventArgs e)
    {
    ListItemType elemType = e.Item.ItemType;
    if (elemType == ListItemType.Pager) 
    {
    // The pager as a whole has the following layout:
    //
    // <TR><TD colspan=X> ... links ... </TD></TR> 
    //
    // Item points to <TR>. The code below moves to <TD>.
    TableCell pager = (TableCell) e.Item.Controls[0]; // Loop through the pager buttons skipping over blanks
    // (Blanks are treated as LiteralControl(s)
    for (int i=0; i<pager.Controls.Count; i+=2) 
    {
    Object o = pager.Controls[i];
    if (o is LinkButton) 
    {
    //在这里你再想办法设为上一页或下一页,因为只有两个"...",我这里只是把两个都替换成“下一页”了。
                                        LinkButton h = (LinkButton) o;
                                        if (h.Text=="...")
                                        {
       h.Text = "下一页”;
                                         }
    }
    else
    {
    Label l = (Label) o;
    l.Text = "Page " + l.Text; 
    }
    }
    }
    }