c# datagridview 能否实现单元格合并
就像word文档的表格,有时候需要合并单元格,比如人员,工号,工资,工资下面又分为(基本工资,岗位工资等等)...
就像word文档的表格,有时候需要合并单元格,比如人员,工号,工资,工资下面又分为(基本工资,岗位工资等等)
展开
6个回答
展开全部
完全的可以
使用自定义表格头部,创建一个具有两行的表头,第一行设置其colspan使其跨列,第二行让他和gridview的实际列相等就能实现你的效果了
做法是编辑gridview的RowCreated事件
if (e.Row.RowType == DataControlRowType.Header)
{
GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
Literal newCells = new Literal();
newCells.Text =""工资'
TableCellCollection cells = e.Row.Cells;
TableHeaderCell headerCell = new TableHeaderCell();
headerCell.ColumnSpan = 3;
//这条语句使表格的这一列跨了3列
headerCell.Controls.Add(newCells);
rowHeader.Cells.Add(headerCell);
//可以用同样的语句再添加一些单元格
rowHeader.Visible = true;
//添加到 GridView1
GridView1.Controls[0].Controls.AddAt(0, rowHeader);
//这里重复上面的语句可以添加表头第二行
//GridView1.Controls[0].Controls.AddAt(1, rowHeader);
}
使用自定义表格头部,创建一个具有两行的表头,第一行设置其colspan使其跨列,第二行让他和gridview的实际列相等就能实现你的效果了
做法是编辑gridview的RowCreated事件
if (e.Row.RowType == DataControlRowType.Header)
{
GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
Literal newCells = new Literal();
newCells.Text =""工资'
TableCellCollection cells = e.Row.Cells;
TableHeaderCell headerCell = new TableHeaderCell();
headerCell.ColumnSpan = 3;
//这条语句使表格的这一列跨了3列
headerCell.Controls.Add(newCells);
rowHeader.Cells.Add(headerCell);
//可以用同样的语句再添加一些单元格
rowHeader.Visible = true;
//添加到 GridView1
GridView1.Controls[0].Controls.AddAt(0, rowHeader);
//这里重复上面的语句可以添加表头第二行
//GridView1.Controls[0].Controls.AddAt(1, rowHeader);
}
展开全部
能,在rowbound事件里面给前一个单元格设置rowspan或者colspan(根据你的实际需要),再删除后一个单元格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给你个地址,清清月儿的博客:关于GridView的七十二般绝技,讲解的很详细的。你想要实现的这个功能可以参考“GridView合并表头多重表头无错完美版(以合并3列3行举例)”
参考地址:http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
参考地址:http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
完全没有问题。
gdv.Rows[i].Cells[k].RowSpan = intSpan;
gdv.Rows[j].Cells[k].Visible = false;
gdv.Rows[i].Cells[k].RowSpan = intSpan;
gdv.Rows[j].Cells[k].Visible = false;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
了解 你说的是多表头吧?下面的连接 可以参考下
参考资料: http://blog.csdn.net/lifuyun/archive/2007/07/13/1688008.aspx
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询