【问题标题】:Adding column to a gridview将列添加到网格视图
【发布时间】:2011-08-08 20:07:25
【问题描述】:

我目前有一个已设置并正常工作的 gridview,但我遇到了一点问题。我的网格的数据源是从数据库表中设置的,表中的一列是另一个表的数字 ID。我需要在另一个表之外显示一个描述列,而不是在网格中显示这个数字 ID。我可以在当前的 gridview 中添加一个额外的列来显示吗?

【问题讨论】:

  • 你可以吗?是的。你应该?否。您如何在数据源中填充数据?

标签: c# asp.net gridview webforms


【解决方案1】:

是的,您可以通过在 ID 字段上使用模板而不是创建新字段来完成此操作。 This link has some examples. 这样您就可以自定义现有列的格式。

【讨论】:

    【解决方案2】:

    您可以使用数据集并将此数据集绑定到网格视图。 使用数据集,您可以添加行、列。下面的示例是向网格视图添加行/列的好示例。您也可以按照相同的示例进行一些调整。 http://www.codeproject.com/KB/aspnet/dynamic_Columns_in_Grid.aspx

    【讨论】:

      【解决方案3】:

      将 AutoGenerateColumns 设置为 false,并定义要显示的列:

                      <asp:GridView ID="GridView1" runat="server" CellPadding="4" CellSpacing="0" AutoGenerateColumns="false" Width="100%">
                          <RowStyle BackColor="#ffffff" />                            
                          <AlternatingRowStyle BackColor="#f5f5dc" />
                          <HeaderStyle BackColor="Beige" ForeColor="#333333" Font-Bold="true" Height="25px" />                        
                          <Columns>
                              </asp:TemplateField>                                                            
                              <asp:TemplateField HeaderText="Address">
                                  <ItemTemplate>
                                      <%# Eval("Address") %>
                                  </ItemTemplate>
                              </asp:TemplateField>
                         </Columns>
                   </asp:GridView>
      

      【讨论】:

      • 数据源仍然必须有一个描述来提取新列,或者代码中的一堆逻辑来试图找出谁知道有多少数字的描述。如果可能,最好将其添加到数据源中。
      【解决方案4】:

      应在 3 个位置进行更改:

      1. datasource 应该将desc 列带回来。在数据库中进行连接并立即将其全部恢复,这样前端就不需要进行大量的调用。

      2. 在显示时,您可以将id 列设置为不可见。这可以在代码后面或 aspx 上完成。

      3. 在编辑时,如果它是基于查找表的值,则需要创建一个下拉列表。如果需要编辑,您可以查询更多信息,如果不需要,前两点应该满足您的需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-26
        • 1970-01-01
        • 2019-09-22
        • 2018-12-02
        相关资源
        最近更新 更多