在您的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中执行此操作很好。
答案 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
由于这会设置行所属的表格部分(页眉,页脚,正文),因此它应该会使您的行在正确的位置结束。