我的 VB 答案的 C# 版本:
private void gvExpertRateHistory_PreRender(Object sender, System.EventArgs e)
{
GridView gv = (GridView)sender;
Table InnerTable = (Table)gv.Controls[0];
if (gv.HeaderRow != null && InnerTable != null)
{
GridViewRow hr;
hr = new GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal);
hr.Cells.Add(NewCell(1, String.Empty, gv, Alignment:HorizontalAlign.Left));
hr.Cells.Add(NewCell(2, "Requested On", gv, Alignment: HorizontalAlign.Left));
hr.Cells.Add(NewCell(4, "Review Rates", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(6, "Court Rates", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(6, "Deposition Rates", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(4, "IME Rates", gv, "WhiteBorderLB"));
InnerTable.Rows.AddAt(0, hr);
hr = new GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal);
hr.Cells.Add(NewCell(1, "Expert", gv, Alignment: HorizontalAlign.Left));
hr.Cells.Add(NewCell(2, "Requested By", gv, Alignment: HorizontalAlign.Left));
hr.Cells.Add(NewCell(2, "Hourly", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Flat", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Hourly", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Daily", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Half-Day", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Hourly", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Daily", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Half-Day", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Hourly", gv, "WhiteBorderLB"));
hr.Cells.Add(NewCell(2, "Flat", gv, "WhiteBorderLB"));
InnerTable.Rows.AddAt(1, hr);
}
}
private TableHeaderCell NewCell(int colspan,
string text,
GridView gv,
string CssClass = "",
HorizontalAlign Alignment = HorizontalAlign.Center)
{
TableHeaderCell thc = new TableHeaderCell();
thc.HorizontalAlign = Alignment;
thc.ColumnSpan = colspan;
thc.Text = text;
thc.BackColor = gv.HeaderRow.BackColor;
thc.ForeColor = gv.HeaderRow.ForeColor;
thc.Font.Bold = true;
thc.CssClass = CssClass;
return thc;
}