【问题标题】:VB .NET Creating Additional Columns in GridviewsVB .NET 在 Gridviews 中创建附加列
【发布时间】:2009-04-22 05:38:26
【问题描述】:

我正在尝试将数据添加到我在 gridview 中创建的新列中。我使用以下代码创建列:

Dim Field As New BoundField
Field.HeaderText = "Cummulative Amount"
Dim Col As DataControlField = Field
Me.GridView1.Columns.Add(Col)

现在我需要进入并为列下方的行添加数据。我看到 ppl 说我需要将它设置为等于一个数据字段,但是我该如何从头开始创建一个数据字段呢?

提前致谢,

【问题讨论】:

    标签: asp.net vb.net gridview


    【解决方案1】:

    是的,人们已经告诉了你正确的事情——你需要设置 BoundField 的 DataField 属性才能渲染它。您的 DataField 将是您将 GridView 绑定到的数据源公开的公共属性。

    另外,您不需要创建DataControlField,因为BoundField 类继承自DataControlField。可以直接将BoundField添加到GridView的Columns集合中。

    Dim Field As New BoundField()
    Field.HeaderText = "Cumulative Amount"
    Field.DataField = "CumulativeAmount"
    
    Me.GridView1.Columns.Add(Field)
    

    【讨论】:

      【解决方案2】:

      更新:

      您可以在网格视图的标记中创建此计算列。假设您的数据源有一个名为“金额”的字段和另一个名为“数量”的字段,并且您的“累积金额”是这两列的乘积,您可以执行以下操作:

      <asp:GridView runat="server" DataSource="sqlDataSource">
        <columns>
          <asp:BoundField HeaderText="Amount" DataField="Amount" />
          <asp:BoundField HeaderText="Quantity" DataField="Quantity" />
          <asp:TemplateField HeaderText="Cummulative Amount">
            <ItemTemplate>
              <asp:Label runat="server" Text='<%# Eval("Amount") * Eval("Quantity") %>' />
            </ItemTemplate>
          </asp:TemplateField>
        </columns>
      </asp:GridView>
      

      【讨论】:

      • 是的,这正是我想要做的。
      • 其他列是自动生成的还是通过标记添加的?
      • 我使用了 gridview 向导。它们都是从存储在数据库中的表创建的。我需要创建这些列,这些列是从行中之前的字段计算得出的值。
      • 我知道 autogeneratescolumns 属性设置为 false。
      • 非常感谢您的帮助,最后一个问题。如果我需要从当前行上方的行中获取数据,我将如何做到这一点?例如,如果我想要一个名为 Total Spend 的列,并且其单元格中的数据是 Spent 列下所有行的累积相加,包括它所在的行和之前的行?
      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 2020-06-03
      • 1970-01-01
      相关资源
      最近更新 更多