【问题标题】:ASP.net programmatically bind dataset to gridviewASP.net 以编程方式将数据集绑定到 gridview
【发布时间】:2011-09-15 13:44:43
【问题描述】:

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

目前我只是在做

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

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

【问题讨论】:

  • 然后你可以选择那几列到数据集中。

标签: c# asp.net data-binding gridview


【解决方案1】:

所以您希望在运行时创建列?试试这个:

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

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

<Columns> 
    <asp:BoundField DataField="ProductName" HeaderText="Product" SortExpression="ProductName" />
    <asp:BoundField DataField="CategoryName" HeaderText="Category" ReadOnly="True" SortExpression="CategoryName" />
    <asp:BoundField DataField="UnitPrice" DataFormatString="{0:c}" HeaderText="Price" HtmlEncode="False" SortExpression="UnitPrice" />
</Columns>

并确保将 AutoGenerateColumns 设置为 false。

【讨论】:

    【解决方案2】:

    GridView默认会根据绑定的数据自动生成所有的列。

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

    【讨论】:

      【解决方案3】:

      我认为有两种方法可以做到这一点,具体取决于您可以更改什么以及必须保持原样:

      1) 如果您可以控制生成数据集的查询/过程,并且可以这样做而不会对其他网格/页面产生不利影响,请修改查询,使其仅选择您使用的列。您仍然可以在 JOIN 和 WHERE 中使用未选择的列,并且您可以获得额外的好处,即不必将每一列都添加到 ORDER BY。

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

      如果您可以同时执行这两项操作,那么您的 Grid 加载速度也应该更快。

      【讨论】:

        【解决方案4】:

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

        的名称相同

        【讨论】:

          【解决方案5】:
          SqlCommand comm = new SqlCommand("Select required fields from YourTable, conn);
          
          conn.Open();
          SqlDataReader rdr = comm.ExecuteReader();
          
          GridView1.DataSource = rdr;
          GridView1.DataBind();
          
          rdr.Close();
          

          这将只打印必填字段。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-04-03
            • 2015-09-07
            • 1970-01-01
            • 2014-02-20
            • 2014-04-18
            • 1970-01-01
            相关资源
            最近更新 更多