http://dotnet.aspx.cc/ShowDetail.aspx?id=B12283DE-DB20-4322-ACCC-12724442808A

解决方案 »

  1.   

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!IsPostBack)
    { DataShow();
    }
    } private void DataShow()          //初始化页面,绑定MyDataGrid1
    {
    OleDbConnection myConnection;
    myConnection = new OleDbConnection( ConnectString);                   
    OleDbDataAdapter myCommand = new OleDbDataAdapter(sql_str, myConnection);
    DataSet ds = new DataSet();
    myCommand.Fill(ds, "t1");
    DataTable dt=ds.Tables ["t1"];
                               ViewState["table"]=(DataTable)dt;
    BindGrid();

    }                   private void BindGrid()           //绑定dgEmps
    {
    dgEmps.DataSource =(DataTable)ViewState["table"];
    try
    {
    dgEmps.DataBind();
    }
    catch
    {
    int i=dgEmps.CurrentPageIndex;
    while(i>=dgEmps.PageCount)                      
    {
    i--;
    }
    dgEmps.CurrentPageIndex=i;
    dgEmps.DataBind ();

    }
    }private void dgEmps_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dgEmps.CurrentPageIndex=e.NewPageIndex;                                //分页控制
    BindGrid();
    }
      

  2.   

    http://dotnet.aspx.cc/..找个相对应的例子好好看一下啦
      

  3.   

    在程序前面加上这句
    if(IsPostBack)
    {
       return;

    }
      

  4.   

    你的程序翻页后执行了Page_Load(),所以不能翻页,点翻页后还是第一页,加上
    if(IsPostBack)
    {
       return;

    }
    后应该可以了
      

  5.   

    你在页面的grid的属性设计里选择‘允许分页’就可以了呀
    要不你就参考以下代码:
    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" AllowPaging="True">  <HeaderStyle></HeaderStyle>
    <Columns>
      <asp:BoundColumn DataField="Name" HeaderText="名称"></asp:BoundColumn>
      ……
    </Columns>
    <PagerStyle Mode="NumericPages"></PagerStyle>//加上这句
    </asp:datagrid>
      

  6.   

    在页面的grid的属性设计里选择‘允许分页’就可以了呀
      

  7.   

    不能用ExecuteReader,那个是SqlDataReader接受的,而且每次只能取一条记录。应该换用DataSet.
    如下:
    <%@Import Namespace="System.Data" %>
    <%@Import Namespace="System.Data.OleDb" %>
    <script Language="C#" runat="server">
    void Page_Load()
    {
    string strConnection="Provider=Microsoft.Jet.OleDb.4.0;"; 
    strConnection +=@"Data Source=E:\ASPNET\TEST\Northwind.mdb"; 
    string strSQL="Select * from products;"; 
    OleDbConnection objConnection=new OleDbConnection(strConnection); OleDbCommand objCommand=new OleDbCommand(strSQL,objConnection);DataSet myDataSet=new DataSet();
    OleDbAdapter myAdapter=new OldDbAdapter;
     
    objConnection.Open();
    myAdapter.SelectCommand=objCommand;
    myAdapter.Fill(myDataSet);
    dgEmps.DataSource=myDataSet.Tables[0];
    dgEmps.DataBind(); } 
      

  8.   

    AllowCustomPaging="True" 
    改为AllowCustomPaging="False" _________
    不能用ExecuteReader,那个是SqlDataReader接受的,而且每次只能取一条记录。应该换用DataSet.
    _________
    这个说法是错误的,SqlDataReader可以用来绑定数据, fengziwei(伟伟) 可以试试看
      

  9.   

     AllowCustomPaging="False" 
    AllowPaging="True"
    -----------------------------------------
    我是楼主:为什么,我的.NET程序用了上面这两句就会出现以下错误:错误:
    AllowCustomPaging 必須為 true,且當 AllowPaging 設為 'true' 且所選取的資料來源沒有實作 ICollection 時,必須為 ID 為 dgEmps 的 DataGrid 設定 VirtualItemCount。
      

  10.   

    你的代码加上
    AutoGenerateColumns="True" 
    以及设置PageSize
      

  11.   

    自动绑定列自动为true,不用设置吧。
      

  12.   

    http://community.csdn.net/Expert/topic/3349/3349966.xml?temp=.6484033
      

  13.   

    void DEDR_Page(Object sender, DataGridPageChangedEventArgs e) 
     {
        dgEmps.CurrentPageIndex = e.NewPageIndex;
        dgEmps.DataBind();
      }
    没有给dgEmps指定数据原
    dgEmps.DataSourse="xx";