代码如下:
    if(!IsPostBack)
    {
         DataSet DsInfo = new DataSet();
         DsInfo = DataOper.showdata("Select Proj.* From Proj Where ProjNo In   ("+strSql+")");
         DataGrid1.DataSource = DsInfo;
DataGrid1.DataBind();
    }数据可以取到三条,我想每页显示一条,可是点击分页按钮没反应。DataGird设置应该没问题:<asp:datagrid id="DataGrid1" runat="server" Height="24px" CellPadding="1" Width="544px" AllowSorting="True"
AutoGenerateColumns="False" HeaderStyle-BackColor="#E5E3F1" BorderColor="#ADC7DE" BorderStyle="None"
PageSize="1" HorizontalAlign="Center" AllowPaging="True">

解决方案 »

  1.   

    PageIndexChanged事件绑定了吗? private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    {
    this.DataGrid1.CurrentPageIndex  = e.NewPageIndex;
    this.BindDataGrid();
    }
      

  2.   

    在DataGrid1的PageIndexChange事件中写DataGrid1.CurrentPageIndex = e.NewPageIndex;DataGrid1.DataSource = DsInfo; DataGrid1.DataBind();即可。
    但是DataGrid仅仅提供显示分页,要实现每次只从数据库中取出一页的数据则需要自己写代码实现。
      

  3.   

    楼上两位应该可以解决楼主的问题了.
    但我发现楼主的代码有点小小的瑕疵,所以特地指出来,希望楼主不会动怒哦 ^_^DataSet DsInfo = new DataSet();
    DsInfo = DataOper.showdata("Select Proj.* From Proj Where ProjNo In   ("+strSql+")");不难猜测DataOper.showdata()方法应该返回的是一个DataSet类型或者DataSet字类型的对象,并且是已经实例化好的对象,
    这样的话上面那句net DataSet();语句生成的DataSet对象便毫无意义了,是不是呢所以我认为上面只需声明一个DataSet变量,而无须实例化这个变量。
      

  4.   

    drone(雄蜂) 说的没错,自动分页也要写代码嘛,要绑定数据才行
      

  5.   

    楼主一定忘记了在private void DataGrid1_PageIndexChanged(object source, DataGridPageChangedEventArgs e)
    { }
    事件中写代码了,加上DataGrid1.CurrentPageIndex  = e.NewPageIndex;
    DataGrid1.BindDataGrid();就可以了