如何将表格行添加到gridview的thead部分?

时间:2014-02-04 14:23:11

标签: asp.net vb.net gridview row

在您的GRIDVIEW中创建一个主题部分

  Protected Overrides Sub OnPreRenderComplete(ByVal e As EventArgs)
    If (gv.Rows.Count > 0) Then
      gv.HeaderRow.TableSection = TableRowSection.TableHeader
    End If
  End Sub

将内容插入您的GRIDVIEW

  Protected Sub gv_OnDataBound(sender As Object, e As EventArgs) Handles gv.DataBound
    Dim row As New GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal)
    For i As Integer = 0 To gv.Columns.Count - 1
      Dim cell As New TableHeaderCell()
      Dim txtBx As New TextBox()
      cell.Controls.Add(txtBx)
      row.Controls.Add(cell)
    Next
    gv.HeaderRow.Parent.Controls.AddAt(1, row)
  End Sub
End Class

这将在第1行的每个单元格<th>中插入一个带有文本框的行。


问题

如何将一行(如上例所示)插入gridview的thead部分?

在aspx页面或VB中执行此操作很好。

2 个答案:

答案 0 :(得分:1)

我无法在vb中找到这样做的方法。 要将内容应用于thead部分中的现有第tr行,您可以使用。

  <asp:TemplateField>
    <HeaderTemplate>
      <p>COL TITLE</p>
      <asp:TextBox ID="txBx" runat="server"/>
    </HeaderTemplate>
    <ItemTemplate>
      CELL DATA
    </ItemTemplate>
  </asp:TemplateField>

这将导致:

    <thead>
      <tr>
        <th>
          <p>COL TITLE</p>
          <input id="txBx" type="text"/>
        </th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td>
          COL DATA
        </td>
      </tr>
    </tbody>

答案 1 :(得分:1)

在OnDataBound事件中,在将其添加到GridView之前,尝试将您创建的行设置为“TableHeader”部分(就像在PreRenderComplete事件中所做的那样):

row.TableSection = TableRowSection.TableHeader

由于这会设置行所属的表格部分(页眉,页脚,正文),因此它应该会使您的行在正确的位置结束。