ASP.net以编程方式将数据集绑定到gridview

我有一个大约15列的数据集,我也有一个ASP.net gridview。 我想知道是否有人知道如何使用数据集填充gridview,但问题是我只想要数据集中的一些列。

目前我正在做

GridView1.DataSource = ds; GridView1.DataBind(); 

但这显然会将数据集中的所有列绑定到gridview。

那么您是否希望在运行时创建列? 试试这个:

http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

或者,您可以在aspx中提前配置gridview:

      

并确保将AutoGenerateColumns设置为false。

默认情况下,GridView将根据绑定的数据自动生成所有列。

设置GridView.AutoGenerateColumns = false ,然后通过GridView.Columns属性定义所需的列。

我可以通过两种方式来实现这一点,具体取决于您可以改变的内容以及必须保持原样的方式:

1)如果您可以控制生成数据集的查询/ proc,并且可以在不对其他网格/页面产生负面影响的情况下执行此操作,请修改查询以使其仅选择您使用的列。 您仍然可以在JOIN和WHERE中使用未选择的列,并且您可以获得额外的好处,即不必将每列添加到ORDER BY。

2)如果你只控制网格和用于生成它的代码隐藏,你可以设置为DataGrid参数,AutoGenerateColumns = false,然后在你的DataGrid中嵌套你需要显示的BoundFields。 这也允许您格式化,制作列名等。

如果你可以做这两件事,你的网格也应该加载得更快。

将网格AutoGeneratedColumns设置为false,并在gridview设计器或代码中设置要使用的列。 但是您必须将列上的DataField属性设置为与名称相同

 SqlCommand comm = new SqlCommand("Select required fields from YourTable, conn); conn.Open(); SqlDataReader rdr = comm.ExecuteReader(); GridView1.DataSource = rdr; GridView1.DataBind(); rdr.Close(); 

这将仅打印必填字段。