新しいヘッダー行を Gridview に追加しようとしています。この行は、元のヘッダー行の下に表示されます。
私の知る限り、次の 2 つのイベントから選択できます。
1.) Gridview_RowDataBound 2.) Gridview_RowCreated
グリッドはポストバックごとにデータをバインドしていないため、オプション 1 はオプションではありません。オプション 2 は期待どおりに機能しません。行を追加できますが、このイベントでは HeaderRow 自体がまだ追加されていないため、HeaderRow の前に追加されます...
助けてください、ありがとう!
コード: (InnerTable プロパティはカスタム グリッドビューによって公開されます)
Private Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
If e.Row.RowType = DataControlRowType.Header Then
Dim r As New GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal)
For Each c As DataControlField In CType(sender, GridView).Columns
Dim nc As New TableCell
nc.Text = c.AccessibleHeaderText
nc.BackColor = Drawing.Color.Cornsilk
r.Cells.Add(nc)
Next
Dim t As Table = GridView1.InnerTable
t.Controls.Add(r)
End If
End Sub