★★★你会吗,送分快来抢★★★:GridView和DataTable都是在后台动态生成的,如何让GridView自动分页和排序?GridView dg = new GridView();
DataTable table = new DataTable();
如何让动态生成的GridView自动分页和支持排序

解决方案 »

  1.   

    而且GridView会同时动态生成多个。如果是静态的话,用SqlDataSource很容易搞定,相信大家都会
      

  2.   

    就是让动态生成的GridView能够通过点击页码或上一页等按钮,能浏览动态生成的DataTable的数据
      

  3.   

    to cpp2017(慕白兄):thanks,用什么方法?能否写个实例代码?
      

  4.   

    是通过分页事件吗?GridView是动态生成的,如何写动态生成的GridView的分页事件?
      

  5.   

    GridView gv = new GridView();
            gv.PageIndexChanged += new EventHandler(gv_PageIndexChanged);
      

  6.   

    关注,现在我的gridview就是表头通过html生成的,数据源也不是预先绑定的,而是后台用select的  请问如何分页和排序,IndexChanged事件如何写呢?
      

  7.   

    to cpp2017(慕白兄):这样写不行,还要写gv_PageIndexChanged里面的实现代码,GridView是动态生成的,gv_PageIndexChanged里面的实现代码不好写,而且GridView会同时动态生成多个
      

  8.   

    protected void Page_Load(object sender, EventArgs e)
        {         DataTable dt = DataClass.ExecuteDataTable("select top 100 id,name from student");
            GridView gv = new GridView();
            gv.DataSource = dt.DefaultView;
            gv.AllowPaging = true;
            this.Panel1.Controls.Add(gv);
          
            gv.PageIndexChanging += new GridViewPageEventHandler(gv_PageIndexChanging);
            gv.DataBind();    }
      void gv_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView g = (GridView)sender;
            g.PageIndex = e.NewPageIndex;
            g.DataBind();
        }
      

  9.   

    编译出错,错误 57 “System.EventArgs”并不包含“NewPageIndex”的定义 C:\OfficeData\web\dt.aspx.cs 86 25 http://localhost/OfficeData/
      

  10.   

    应该是GridViewPageEventArgs e,请按上楼的写.
      

  11.   

    protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)    {        if (GridView1.EditIndex != -1)        {            // Use the Cancel property to cancel the paging operation.            e.Cancel = true;            int newPageNumber = e.NewPageIndex + 1;        }        else        {            GridView1.PageIndex = e.NewPageIndex;            GridView1.DataBind();         }}然后把事件绑定到该控件上就行了。 <asp:GridView ID="GridView1",……onPageIndexChanging="GridView1_PageIndexChanging"……>
      

  12.   

    提示:错误 56 “dg_PageIndexChanging”的重载均与委托“System.EventHandler”不匹配 C:\OfficeData\web\dt.aspx.cs 67 40 http://localhost/OfficeData/
      

  13.   

    gv.PageIndexChanging += new GridViewPageEventHandler(gv_PageIndexChanging)
      

  14.   

    提示:未将对象引用设置到对象的实例。代码如下:
    protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                for (int i = 0; i < 3; i++)
                {
                    TabItem item1 = new Tab();
                    item1.Text = "Tab " + i.ToString();
                    TabStrip1.Items.Add(item1);
                    PageView pv = new PageView();
                    pv.ID = i.ToString();
                    GridView dg = new GridView();
                    DataTable table = new DataTable();                // Declare DataColumn and DataRow variables.
                    DataColumn column;
                    DataRow row;                // Create new DataColumn, set DataType, ColumnName
                    // and add to DataTable.    
                    column = new DataColumn();
                    column.DataType = System.Type.GetType("System.Int32");
                    column.ColumnName = "id";
                    table.Columns.Add(column);                // Create second column.
                    column = new DataColumn();
                    column.DataType = Type.GetType("System.String");
                    column.ColumnName = "item";
                    table.Columns.Add(column);                // Create new DataRow objects and add to DataTable.    
                    for (int j = 0; j < 10; j++)
                    {
                        row = table.NewRow();
                        row["id"] = j;
                        row["item"] = "item " + j + i;
                        table.Rows.Add(row);
                    }
                   // SqlDataSource sd = new SqlDataSource();
                    dg.DataSource = table.DefaultView;
                    
                    dg.PageSize = 3;
                    dg.AllowPaging = true;                //dg.AllowSorting = true;
                    
                    dg.PageIndexChanging += new GridViewPageEventHandler(dg_PageIndexChanging);
                    dg.DataBind();
                    //dg.PageIndexChanged=
                    
                    pv.Controls.Add(dg);   //可以换成你自己的DataList
                    MultiPage1.Controls.Add(pv);            }
            }
            
        }
       
        void dg_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView g = (GridView)sender;
           
            g.PageIndex = e.NewPageIndex;
            g.DataBind();        //dg_PageIndexChanged.
        }
      

  15.   

    动态添加的控件放在if!(this.ispostback)外
      

  16.   

    去掉  if (!IsPostBack)
            {
      

  17.   

    to cpp2017(慕白兄):谢谢,这段代码麻烦您帮我调一下,分都送给您了
      

  18.   

    那就把添加tab的代码放在里面.添加gridview放在外面.
      

  19.   

    学习
    小弟.NET菜鸟,主搞ASP.NET 愿结识有共同爱好的朋友
    QQ群:35554886
      

  20.   

    如果把添加tab和gridview的代码放在某个按钮的点击事件中怎么办
      

  21.   

    freeants() 说得对简单实用