我有一个ASP.NET C# GridView其中的列如下所示:
| Foo | Bar | Total1 | Total2 | Total3 |
是否可以在看起来像这样的行上创建标题?
| General | Totals |
| | A | B | C |
| Foo | Bar | 1 | 2 | 3 |
我尝试过行创建方法,但我停下来:
| General | Totals |
| Foo | Bar | 1 | 2 | 3 |
我的代码如下。
你能帮助我吗?
预先感谢您的任何帮助,非常感谢。
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Header)
{
GridView ProductGrid = (GridView)sender;
GridViewRow HeaderRow = new GridViewRow(0, 0,
DataControlRowType.Header, DataControlRowState.Insert);
TableCell HeaderCell = new TableCell();
HeaderCell.Text = "General";
HeaderCell.HorizontalAlign = HorizontalAlign.Center;
HeaderCell.ColumnSpan = 2;
HeaderCell.CssClass = "HeaderStyle";
HeaderRow.Cells.Add(HeaderCell);
ProductGrid.Controls[0].Controls.AddAt(0, HeaderRow);
HeaderCell = new TableCell();
HeaderCell.Text = "Totals";
HeaderCell.HorizontalAlign = HorizontalAlign.Center;
HeaderCell.ColumnSpan = 3;
HeaderCell.CssClass = "HeaderStyle";
HeaderRow.Cells.Add(HeaderCell);
}
}
您可以这样做。此代码片段以编程方式添加所有 3 个标题行。但您也可以使用普通的 GridView 标头作为第三行。因此,对于我的示例,gridview 应该如下所示并且有 5 列
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
OnRowCreated="GridView1_RowCreated" ShowHeader="false">
然后是 RowCreated 方法
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
//cast the sender back to a gridview
GridView gv = sender as GridView;
//check if the row is the header row
if (e.Row.RowType == DataControlRowType.Header)
{
//create the first row
GridViewRow extraHeader1 = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
extraHeader1.BackColor = Color.LightSalmon;
TableCell cell1 = new TableCell();
cell1.ColumnSpan = 2;
cell1.Text = "General";
extraHeader1.Cells.Add(cell1);
TableCell cell2 = new TableCell();
cell2.ColumnSpan = 3;
cell2.Text = "Totals";
extraHeader1.Cells.Add(cell2);
//create the second row
GridViewRow extraHeader2 = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
extraHeader2.BackColor = Color.LightGreen;
TableCell cell3 = new TableCell();
cell3.ColumnSpan = 2;
extraHeader2.Cells.Add(cell3);
TableCell cell4 = new TableCell();
cell4.Text = "A";
extraHeader2.Cells.Add(cell4);
TableCell cell5 = new TableCell();
cell5.Text = "B";
extraHeader2.Cells.Add(cell5);
TableCell cell6 = new TableCell();
cell6.Text = "C";
extraHeader2.Cells.Add(cell6);
//create the third row
GridViewRow extraHeader3 = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Insert);
extraHeader3.BackColor = Color.LightBlue;
//loop all the columns and create a new cell for each
for (int i = 0; i < gv.Columns.Count; i++)
{
TableCell cell = new TableCell();
if (i == 0)
cell.Text = "Foo";
else if (i == 1)
cell.Text = "Bar";
else
cell.Text = (i - 1).ToString();
extraHeader3.Cells.Add(cell);
}
//add the new rows to the gridview
gv.Controls[0].Controls.AddAt(0, extraHeader3);
gv.Controls[0].Controls.AddAt(0, extraHeader2);
gv.Controls[0].Controls.AddAt(0, extraHeader1);
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)