日期:2014-05-18  浏览次数:20507 次

GridView 中有一行横跨数列,应该如何设置?
我这个GridView   总共有五列,其中第一、二、四列都绑定在同一个表的三个字段上,大概有十几个数据项(即十几行);而第三列(c)是绑定在另外一个表的某个字段上的一个数据项上,就仅仅一行,为了照顾格式,要使这个项在上下方向跨越所有行,让它一列从上到底;最后一列第五列(e)要位于GridView   的底端,要绑定在另外一个表的某个字段上的一个数据项上,就仅仅一行一列,横跨整个表,请问各路豪杰,应该怎么办?
a       b       c       d
*       *       *       *
-------   *     ---
*       *       *       *
-------   *     ---
*       *       *       *
--------------
e
--------------
**************

------解决方案--------------------
想了想,也许这样是你想要的,


// GridView DataBound 事件
protected void GridView1_DataBound(object sender, EventArgs e)
{
// 第一行第三列跨行
GridView1.Rows[0].Cells[2].RowSpan = GridView1.Rows.Count;
// 其他行第三列合并
for (int i = 1; i < GridView1.Rows.Count; i++) {
GridView1.Rows[i].Cells.RemoveAt(2);
}
}


// GridView RowDataBound 事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.Footer) {
GridViewRow insertedRow = new GridViewRow(GridView1.Rows.Count, GridView1.Rows.Count, DataControlRowType.DataRow, DataControlRowState.Normal);
TableCell cell = new TableCell();
cell.Text = "hello "; // DataTable.Rows[0][第5列].ToString();
cell.ColumnSpan = GridView1.Columns.Count;
insertedRow.Cells.Add(cell); GridView1.Controls[0].Controls.AddAt(GridView1.Controls[0].Controls.Count - 1, insertedRow);
}
}