web页面:
<asp:DataGrid ID="DataGrid1" AutoGenerateColumns="True" AllowPaging="true" Runat="server"/>程序部分:
namespace datagrid
{
public class WebForm1 : System.Web.UI.Page
{
protected System.Web.UI.WebControls.DataGrid DataGrid1;
               OleDbConnection myconn;
private void Page_Load(object sender, System.EventArgs e)
{

myconn=new OleDbConnection("Provider=microsoft.jet.oledb.4.0;data source="+Server.MapPath("board.mdb"));
myconn.Open();
if(!IsPostBack)
{
 binding();
} }
void binding()
{
DataSet ds=new DataSet();
OleDbDataAdapter myadapter=new OleDbDataAdapter("select * from newpost",myconn);
myadapter.Fill(ds,"score");
DataGrid1.DataSource=ds.Tables["score"].DefaultView;
DataGrid1.DataBind();
} private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
{
DataGrid1.CurrentPageIndex =e.NewPageIndex;//*************
binding();
}
}
}
错误类别:“System.EventArgs”并不包含对“NewPageIndex”的定义,就是上面作“//*******”的那一行,把这一行全部去掉后程序可以正常运行,但是下一页点击无效,请大家指教一下!

解决方案 »

  1.   

    datagrid自动分页aspx页面:
    <form runat="server">   'Previous' Link Text:
       <ASP:TextBox id="PrevText" runat="server" /> &nbsp;
       'Next' Link Text:
       <ASP:TextBox id="NextText" runat="server" /><br />   Paging Style:
       <ASP:RadioButton id="PageNumeric" GroupName="Style"
                        runat="server" /> Numeric &nbsp;
       <ASP:RadioButton id="PageText" GroupName="Style"
                        runat="server" /> Text<br />   Number of rows per Page:
       <ASP:TextBox id="PageRows" runat="server" /><p />   <ASP:DataGrid id="MyDataGrid" runat="server"
            Width="90%"
            AllowPaging="True" //允许分页
            PagerStyle-HorizontalAlign="Right"
            OnPageIndexChanged="ChangeGridPage" />
     //OnPageIndexChanged事件处理函数:ChangeGridPage
    </form>脚本:
    <script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e)
     {
      if (!Page.IsPostBack)//首次加载
      {
       // set the default values in the controls on the page
       PrevText.Text = "Prev";
       NextText.Text = "Next";
       PageNumeric.Checked = true;
       PageRows.Text = "10";   // set the initial page in the DataGrid to zero
       // (not actually required as this is the default)
       MyDataGrid.CurrentPageIndex = 0;   // create the data set and bind it to the DataGrid control
       BindDataGrid();
      }
     } //分页处理函数:
     void ChangeGridPage(Object objSender, DataGridPageChangedEventArgs objArgs )
     {
      // runs when one of the pager controls is clicked  // update the current page number from the parameter values
      MyDataGrid.CurrentPageIndex = objArgs.NewPageIndex;  // recreate the data set and bind it to the DataGrid control
      BindDataGrid();
     }  
     void BindDataGrid()
     {
      // set the value of the number of rows per page
      MyDataGrid.PageSize = Convert.ToInt32(PageRows.Text);  // set the type of pager to include in the DataGrid
      if (PageNumeric.Checked == true)
       MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages;
      else
       MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;  // set the text for the pager to use when in NextPrev mode
      MyDataGrid.PagerStyle.NextPageText = NextText.Text;
      MyDataGrid.PagerStyle.PrevPageText = PrevText.Text;  // get connection string from ..\global\connect-strings.ascx user control
      string strConnect = ctlConnectStrings.OLEDBConnectionString;  //create a SQL statement to select some rows from the database
      string strSelect = "SELECT * FROM BookList";  // create a variable to hold an instance of a DataView object
      DataView objDataView;  // get DataView from get-dataview-control.ascx user control
      objDataView = ctlDataView.GetDataView(strConnect, strSelect);  if (objDataView == null)
       return;  // set the DataSource property of the DataList
      MyDataGrid.DataSource = objDataView;  // and bind the control to the data
      MyDataGrid.DataBind();
     }</script>
    关键部分:
    初始值:
    MyDataGrid.CurrentPageIndex = 0;
    点击分页链接时指向新页面:
    MyDataGrid.CurrentPageIndex = objArgs.NewPageIndex;
    在BindDataGrid()中进行分页设置:
    // set the value of the number of rows per page
      MyDataGrid.PageSize = Convert.ToInt32(PageRows.Text);  // set the type of pager to include in the DataGrid
      if (PageNumeric.Checked == true)
       MyDataGrid.PagerStyle.Mode = PagerMode.NumericPages;
      else
       MyDataGrid.PagerStyle.Mode = PagerMode.NextPrev;  // set the text for the pager to use when in NextPrev mode
      MyDataGrid.PagerStyle.NextPageText = NextText.Text;
      MyDataGrid.PagerStyle.PrevPageText = PrevText.Text;
      

  2.   

    private void DataGrid1_SelectedIndexChanged(object sender, DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex =e.NewPageIndex;//*************
    binding();
    }
    -----〉
    private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    DataGrid1.CurrentPageIndex =e.NewPageIndex;//*************
    binding();
    }
      

  3.   

    错了,这样:
    private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs  e)
    {
    DataGrid1.CurrentPageIndex =e.NewPageIndex;//*************
    binding();
    }
    -----〉
    private void DataGrid1_SelectedIndexChanged(object sender, DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex =e.NewPageIndex;//*************
    binding();
    }
      

  4.   

    对于AllenTing(从"脚"再来) 朋友的修改之后错误提示:方法“datagrid.WebForm1.DataGrid1_SelectedIndexChanged(object, System.Web.UI.WebControls.DataGridPageChangedEventArgs)”与委托“void System.EventHandler(object, System.EventArgs)”不匹配
      

  5.   

    把 委托“void System.EventHandler(object, System.EventArgs)也改一下:
    void System.EventHandler(object, System.Web.UI.WebControls.DataGridPageChangedEventArgs)
      

  6.   

    再次求助热心的AllenTing(从"脚"再来) 朋友:把 委托“void System.EventHandler(object, System.EventArgs)也改一下:
    void System.EventHandler(object, System.Web.UI.WebControls.DataGridPageChangedEventArgs)在哪里改呀?
      

  7.   

    看看这个:
    http://blog.csdn.net/allenting/archive/2005/01/27/271073.aspx还有:你没有设置初始时DataGrid1.CurrentPageIndex属性,会抱错的