private void dgItem_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
dgItem.CurrentPageIndex=e.NewPageIndex;
InitBind2();
}InitBind2();//为你ispostback中的内容

解决方案 »

  1.   

    datagrid中只有select按钮不需要编程。其他的各种方法都需要编程解决。
      

  2.   

    dongchuanlu(匡奇) 兄你的方法我试过了,当我点击下一页的时候,好像那个函数并没有被调用还有其他要注意的么?
      

  3.   

    hhzh426(春之风) ( ) 
    给个详细一点的说明可否?
    急用
      

  4.   

    注意DATAGRID必须放置在带RUNAT=SERVER的FORM内才可以分页成功
      

  5.   

    这是具体代码<form id="choose" method="post" runat="server">
    <FONT face="宋体" id="FONT1">
    <asp:DataGrid id="dgItem" style="Z-INDEX: 101; LEFT: 98px; POSITION: absolute; TOP: 75px" runat="server" BorderColor="#CC9966" BorderStyle="None" BorderWidth="1px" BackColor="White" CellPadding="4" AllowPaging="True" PageSize="5">
    <SelectedItemStyle Font-Bold="True" ForeColor="#663399" BackColor="#FFCC66"></SelectedItemStyle>
    <ItemStyle ForeColor="#330099" BackColor="White"></ItemStyle>
    <HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000"></HeaderStyle>
    <FooterStyle ForeColor="#330099" BackColor="#FFFFCC"></FooterStyle>
    <PagerStyle HorizontalAlign="Center" ForeColor="#330099" BackColor="#FFFFCC" Mode="NumericPages"></PagerStyle>
    </asp:DataGrid></FONT>
    </form>
      

  6.   

    private void dgItem_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dgItem.CurrentPageIndex=e.Itme.ItemIndex;
    databind();
    }
    当然,databind()需要你自己绑定了
      

  7.   

    databind()
    这此的绑定和pageload里的绑定有什么区别么?
    我把原来的复制过去,好像不行啊这是我的代码 private void dgItem_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    dgItem.CurrentPageIndex=e.NewPageIndex;
    Response.Write("private void dgItem_PageIndexChanged called");
    InitBind2();

    }
    void InitBind2() {
    Response.Write("InitBind2() called");
    SqlConnection cn = new SqlConnection(ConfigurationSettings.AppSettings["strConn"]);
    cn.Open();
    //DateTime now = DateTime.Today;
    //temp.Text = temp.Text + now.Date.ToString();
    string strSQL = "select * from T_item ";//where lx = %A%
    SqlCommand cm = new SqlCommand (strSQL,cn);
    SqlDataAdapter da = new SqlDataAdapter ();
    da.SelectCommand = cm;
    DataSet ds = new DataSet();
    da.Fill(ds,"T_item");
    dgItem.DataSource = ds;
    dgItem.DataBind();
    }点击之后并没有输出,好像没有调用啊
      

  8.   

    在《亲密接触ASP.NET》中有较详细的说明,建议你看看,很多地方有下载
      

  9.   

    private void InitializeComponent()
    {
    .......
    this.DG.PageIndexChanged += new System.Web.UI.WebControls.DataGridPageChangedEventHandler(this.DG_PageIndexChanged);//这一句是将该过程绑定到事件中。
    如果你是用IDE编程的话,直接在事件窗口中双击datagrid的PageIndexChanged事件。.....
    }private void DG_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
      DG.CurrentPageIndex = e.NewPageIndex;
      //在此之前必须获取相应的数据。
      DG.DataBind();
    }
      

  10.   

    动态生成的datagrid,在响应界面的server端事件后,pastback就必须重新生成一遍吗?datagrid不能保持原有状态吗??
      

  11.   

    asp.net中不存在自动分页的功能,需要编程实现。在“帮助”中有较细说明,但程序中有一些bug。如果有兴趣的话,我们可以讨论!
      

  12.   

    to vivaldi16:
    datagrid能够保持原有状态,但datagrid绑定时只获取该页的内容进行显示并保存这部分的信息,如果需要分页的话,这种信息就没有用处了。用存储过程处理分页,为什么要这么做?
    DbDataAdapter.Fill Method (DataSet, Int32, Int32, String)的方法就可以指定填充的起始记录和最大记录数。
      

  13.   

    #001: <%@ Import Namespace="System.Data" %>#002: <!-- #include File="Mdb.vb" -->#003: #004: <Html>#005: <Body BgColor="White"><Center>#006: <H3>Grid06.aspx -- 将 < 及 > 改成 1 2 3 4 ┅ 的页次连结<HR></H3>#007: <Form runat="server">#008: <asp:DataGrid runat="server" id="MyGrid"#009:      AllowPaging="True" #010:      PageSize="10"#011:      OnPageIndexChanged="ChangePage"#012:      PagerStyle-Mode="NumericPages"#013:      PagerStyle-HorizontalAlign="Right"#014:      HeaderStyle-BackColor="#AAAADD" #015:      AlternatingItemStyle-BackColor="#FFFFC0"#016:      BorderColor="Black"#017:      CellPadding="2" #018:      CellSpacing="0" />#019: </Form>#020: <p>#021: <HR></Center></Body>#022: </Html>#023: #024: <script Language="VB" runat="server">#025: #026:    Sub OpenDataBase_And_BindToDataGrid()#027:       Dim Table As DataTable#028:       Table = OpenMdbTable( "Sample.mdb", "股票行情表" )#029: #030:       MyGrid.DataSource = Table.DefaultView#031:       MyGrid.DataBind()#032:    End Sub#033: #034:    Sub Page_Load(sender As Object, e As EventArgs) #035:       If Not IsPostBack Then#036:          OpenDataBase_And_BindToDataGrid()#037:       End If#038:    End Sub#039: #040:    Sub ChangePage(sender As Object, e As DataGridPageChangedEventArgs)#041:       MyGrid.CurrentPageIndex = e.NewPageIndex#042:       OpenDataBase_And_BindToDataGrid()#043:    End Sub#044: #045: </script>有点乱了~~呵,
    不过好使呀`?
    可以分页的 
      

  14.   

    protected virtual void databind()
    {
    UserData news = new UserData();
    if(subclassid==0)
    {
    if(news.GetAllUserNews(classid))
    {
    for(int i =0;i<news.ds.Tables[0].Rows.Count;i++)
    {
    if(news.ds.Tables[0].Rows[i]["image"].ToString()=="")
    {
    news.ds.Tables[0].Rows[i]["image"]="/img/default.gif";
    }
    }
    DataGrid1.DataSource = news.ds;
    DataGrid1.DataBind();
    }
    }
    else
    {
    if(news.GetAllUserNews(classid,subclassid))
    {
    for(int i =0;i<news.ds.Tables[0].Rows.Count;i++)
    {
    if(news.ds.Tables[0].Rows[i]["image"].ToString()=="")
    {
    news.ds.Tables[0].Rows[i]["image"]="/img/default.gif";
    }
    }
    DataGrid1.DataSource = news.ds;
    DataGrid1.DataBind();
    }
    }
    }
      

  15.   

    protected void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
    {
    DataGrid1.CurrentPageIndex=e.NewPageIndex;
    this.databind();
    }