private void Page_Load(object sender, System.EventArgs e)
{  
        if(!IsPostBack)
{ MyGrid.VirtualItemCount = 7;
BindGrid();
         }}

解决方案 »

  1.   

    这个有点怪,PageIndexChanged事件中调用了BindGrid()
    怎么不生效呢在事件里设个断点,看看事件有没执行先
      

  2.   

    '分页
        'Private Sub DatGrid_PageIndexChanged(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridPageChangedEventArgs) Handles DatGrid.PageIndexChanged
        '    DatGrid.CurrentPageIndex = e.NewPageIndex
        '    DatGrid.DataBind()
        'End Sub
      

  3.   

    private void MyGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    MyGrid.CurrentPageIndex = e.NewPageIndex;
    MyGrid.DataBind();
    }来试试,无理由不行的
      

  4.   

    分页的程序都没错。
    你试试把DATAGRID属性里的"允许自定义分页"的钩去掉。最好在代码里定义DATAGRID的属性,比如allowpaging,pagesize,PagerStyle.Mode,PagerStyle.PageButtonCount等。
      

  5.   

    谢谢各位!
    我的分页程序调出来了,但是还是有几点不明白:1.dataGrid 的分页与所绑定的数据源的类型是不是有关系?我先前用的是SqlDataReader,怎么调也不对;换成DataSet就可以了;2.从MSDN 看,dataGrid 的分页有自动分页(AllowPaging=true)和自定义分页(AllowCustomPaging=true)两种,我用前者调出来了,但是这种方式效率比较低。我在前面贴的代码是用自定义分页的,但是问题也在前面说了;据我理解,问题应该出在MyGrid_PageIndexChanged里的BindData();这一行,这里应该写另外一个带参数的BindData2(int pageSize,int pageNumber),返回的SqlDataReader result 本身就只包含需要在新页显示的数据,就是说分页是在执行数据查询时实现的。
    但不能确定,不知谁有没有调试通过的例子???
      

  6.   


    自定义分页的目的就是只加载显示单页所需的数据段
    建议你看看msdn帮助先
    ms-help://MS.VSCC/MS.MSDNVS.2052/cpref/html/frlrfsystemwebuiwebcontrolsdatagridclassallowcustompagingtopic.htm