グリッドビューの行を反復処理するページの読み込み時に呼び出すメソッドがあります。行の 'SectionID' が変更されたときにヘッダー行が挿入されるようにしたい (これはデータ キーです)。
追加のヘッダー行が 6 行挿入されますが、私のコードはそれを行っていますが、上部 (元のヘッダーの下、最初のデータ行の前) にすべての追加行を挿入しています。変化します。
これが私の方法です:
protected void addHeaders() {
foreach (GridViewRow row in GridView1.Rows) {
if (row.RowType == DataControlRowType.DataRow) {
tmpSectionID = GridView1.DataKeys[row.RowIndex].Values["SectionID"].ToString();
System.Diagnostics.Debug.WriteLine(tmpSectionID);
if (sectionID != tmpSectionID) {
sectionID = tmpSectionID;
GridView gvw = (GridView)GridView1;
DataRowView drv = (DataRowView)row.DataItem;
GridViewRow HeaderRow = new GridViewRow(-1, -1, DataControlRowType.Header, DataControlRowState.Normal);
Table tbl = row.Parent as Table;
Table myTable = (Table)GridView1.Controls[0];
TableCell HeaderCell = new TableCell();
HeaderCell.ColumnSpan = this.GridView1.Columns.Count;
HeaderCell.Style.Add("font-weight", "bold");
HeaderCell.Style.Add("background-color", "#22539B");
HeaderCell.Style.Add("color", "white");
HtmlGenericControl HeaderSpan = new HtmlGenericControl("span");
HeaderCell.ToolTip = "Tooltip Here";
HeaderSpan.InnerHtml = "Inserted Row";
HeaderCell.Controls.Add(HeaderSpan);
HeaderRow.Cells.Add(HeaderCell);
myTable.Rows.AddAt(1, HeaderRow);
}
}
}
}