不可访问“Webtest.WebForm5.DataGrid_PageIndexChanged(object, System.Web.UI.WebControls.DataGridPageChangedEventArgs)”,因为它受保护级别限制
因为:private void  DataGrid_PageIndexChanged( Object sender  , DataGridPageChangedEventArgs e )
{
myDataGrid.CurrentPageIndex = e.NewPageIndex;
BindList(); 
}

}
定义的DataGrid_PageIndexChanged是private的而<Asp:DataGrid Runat="Server" Id="myDataGrid" ... OnPageIndexChanged="DataGrid_PageIndexChanged" ...>
...
</Asp:DataGrid>你在ASPX中调用了CS(CodeBehind)中的private访问属性的函数DataGrid_PageIndexChanged,所以不行。

解决方案 »

  1.   

    解决:1——
    在CS代码中,把DataGrid_PageIndexChanged的访问控制属性private修改为protected或其他的2——
    删除ASPX中的
    OnPageIndexChanged="DataGrid_PageIndexChanged"
    然后在CS代码中的INITIALIZECOMPONENT函数中增加:
    myDataGrid.PageIndexChanged+=new DataGridPageChangedEventHandler(DataGrid_PageIndexChanged)说明:
    1——
    你在ASPX中为控件设定的事件处理,处理函数如果是在对应的CS文件中,则函数应该至少是protected(推荐这样)的,而不能是private。2——
    虽然你把事件绑定放在ASPX中设置也是可以的,但除非是混合编程,不推荐这样做,所以你最好采用我上面提供的解决方案二。