datagrid 动态添加一行表头
DataGridItem rowHeader = new DataGridItem(0, -1, ListItemType.Header);
rowHeader.Height=30;
Literal newCells = new Literal();
newCells.Text =@"<colspan='3'>标题</th>";
TableCellCollection cells = e.Item.Cells;
TableHeaderCell headerCell = new TableHeaderCell();
headerCell.Controls.Add(newCells);
rowHeader.Cells.Add(headerCell);
rowHeader.Visible = true;
this.DataGrid1.Controls[0].Controls.AddAt(0, rowHeader);
这样加上的表头不是三个各合并在一起,而是以下形式:
---------------------------------------
| 标题 | |
---------------------------------------
| 语文 | 数学 | 化学 |
---------------------------------------
我想要这种样式:
---------------------------------------
| 标题 |
---------------------------------------
| 语文 | 数学 | 化学 |
---------------------------------------
代码上出什么差错了?望指点,谢谢!
------解决方案--------------------gridview中这样写可以
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
switch (e.Row.RowType)
{
case DataControlRowType.Header:
//第一行表头
TableCellCollection tcHeader = e.Row.Cells;
tcHeader.Clear();
tcHeader.Add(new TableHeaderCell());
tcHeader[0].Attributes.Add("colspan", "2"); //跨Column
tcHeader[0].Text = "标题</th></tr><tr>";
//第二行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[1].Text = "语文";
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Text = "数学";
tcHeader.Add(new TableHeaderCell());
tcHeader[3].Text = "化学";
break;
}
}
datagrid应类似吧
------解决方案-------------------- headerCell.ColumnSpan = 100;
------解决方案--------------------
------解决方案--------------------
C# code
public partial class WebForm7 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("Chinese", typeof(int));
dt.Columns.Add("Math",typeof(int));
dt.Columns.Add("Nature",typeof(int));
DataRow row = dt.NewRow();
row[0] = 100;
row[1] = 100;
row[2] = 99;
dt.Rows.Add(row);
this.GridView1.DataSource = dt;
this.GridView1.DataBind();
}
protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
Table t = new Table();
if(e.Row.RowType == DataControlRowType.Header)
{
TableRow r = new TableRow();
TableCell c = new TableCell();
c.Text = "Title";
c.ColumnSpan = 3;
c.HorizontalAlign = HorizontalAlign.Center;
r.Cells.Add(c);
TableRow r2 = new TableRow();
TableCell c1 = new TableCell();
c1.Text = e.Row.Cells[0].Text;
r2.Cells.Add(c1);
TableCell c2 = new TableCell();
c2.Text = e.Row.Cells[1].Text;