★★★你会吗,送分快来抢★★★:GridView和DataTable都是在后台动态生成的,如何让GridView自动分页和排序? ★★★你会吗,送分快来抢★★★:GridView和DataTable都是在后台动态生成的,如何让GridView自动分页和排序?GridView dg = new GridView();DataTable table = new DataTable();如何让动态生成的GridView自动分页和支持排序 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 而且GridView会同时动态生成多个。如果是静态的话,用SqlDataSource很容易搞定,相信大家都会 就是让动态生成的GridView能够通过点击页码或上一页等按钮,能浏览动态生成的DataTable的数据 to cpp2017(慕白兄):thanks,用什么方法?能否写个实例代码? 是通过分页事件吗?GridView是动态生成的,如何写动态生成的GridView的分页事件? GridView gv = new GridView(); gv.PageIndexChanged += new EventHandler(gv_PageIndexChanged); 关注,现在我的gridview就是表头通过html生成的,数据源也不是预先绑定的,而是后台用select的 请问如何分页和排序,IndexChanged事件如何写呢? to cpp2017(慕白兄):这样写不行,还要写gv_PageIndexChanged里面的实现代码,GridView是动态生成的,gv_PageIndexChanged里面的实现代码不好写,而且GridView会同时动态生成多个 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(); } 编译出错,错误 57 “System.EventArgs”并不包含“NewPageIndex”的定义 C:\OfficeData\web\dt.aspx.cs 86 25 http://localhost/OfficeData/ 应该是GridViewPageEventArgs e,请按上楼的写. 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"……> 提示:错误 56 “dg_PageIndexChanging”的重载均与委托“System.EventHandler”不匹配 C:\OfficeData\web\dt.aspx.cs 67 40 http://localhost/OfficeData/ gv.PageIndexChanging += new GridViewPageEventHandler(gv_PageIndexChanging) 提示:未将对象引用设置到对象的实例。代码如下: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. } 动态添加的控件放在if!(this.ispostback)外 去掉 if (!IsPostBack) { to cpp2017(慕白兄):谢谢,这段代码麻烦您帮我调一下,分都送给您了 那就把添加tab的代码放在里面.添加gridview放在外面. 学习小弟.NET菜鸟,主搞ASP.NET 愿结识有共同爱好的朋友QQ群:35554886 如果把添加tab和gridview的代码放在某个按钮的点击事件中怎么办 freeants() 说得对简单实用 asp.net开发网站的网址如何静态化,更利于优化 我的电脑开机执行这段程序,谁帮忙分析下 ashx 和Jquery Ajax问题 征集自定义身份验证安全解决方案!!!! datatable 联合查询 上传服务器问题,在线等!!!!!!!!!!!!! asp.net 中oracle连接(C#) 如何制作弹出菜单? 求购asp.net c#+sql200开发的OA或erp Repeater中隐藏ImageButton asp.net TREEVIEW 为什么不显示图片(VS 2003) 请教个问题,望高手指点
gv.PageIndexChanged += new EventHandler(gv_PageIndexChanged);
{ 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();
}
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.
}
{
小弟.NET菜鸟,主搞ASP.NET 愿结识有共同爱好的朋友
QQ群:35554886