C#里的报表的列头怎么分成两行两列。第一行类似于合并了单元格了,第二行就是分开的,就像品字型一样, 我想用C#做一个这样的报表,就是把列头分成两行两列,,上面一行是总,下面一行是分。就像上面一行是“总计划”,下面一行是“计划1”,“计划2”,像一个品字型这样,(我是菜鸟不会放图片,只能这样显示了,请各位高手见谅)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用DevExpress,可以轻松实现,记得给分哦. 什么报表控件:GridView合并表头多重表头无错完美版(以合并3列3行举例)后台代码://这里就是解决方案 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("rowspan", "3"); //跨Row tcHeader[0].Attributes.Add("bgcolor", "white"); tcHeader[0].Text = ""; tcHeader.Add(new TableHeaderCell()); //tcHeader[1].Attributes.Add("bgcolor", "Red"); tcHeader[1].Attributes.Add("colspan", "6"); //跨Column tcHeader[1].Text = "全部信息</th></tr><tr>"; //第二行表头 tcHeader.Add(new TableHeaderCell()); tcHeader[2].Attributes.Add("bgcolor", "DarkSeaGreen"); tcHeader[2].Text = "身份证号码"; tcHeader.Add(new TableHeaderCell()); tcHeader[3].Attributes.Add("bgcolor", "LightSteelBlue"); tcHeader[3].Attributes.Add("colspan", "2"); tcHeader[3].Text = "基本信息"; tcHeader.Add(new TableHeaderCell()); tcHeader[4].Attributes.Add("bgcolor", "DarkSeaGreen"); tcHeader[4].Text = "福利"; tcHeader.Add(new TableHeaderCell()); tcHeader[5].Attributes.Add("bgcolor", "LightSteelBlue"); tcHeader[5].Attributes.Add("colspan", "2"); tcHeader[5].Text = "联系方式</th></tr><tr>"; //第三行表头 tcHeader.Add(new TableHeaderCell()); tcHeader[6].Attributes.Add("bgcolor", "Khaki"); tcHeader[6].Text = "身份证号码"; tcHeader.Add(new TableHeaderCell()); tcHeader[7].Attributes.Add("bgcolor", "Khaki"); tcHeader[7].Text = "姓名"; tcHeader.Add(new TableHeaderCell()); tcHeader[8].Attributes.Add("bgcolor", "Khaki"); tcHeader[8].Text = "出生日期"; tcHeader.Add(new TableHeaderCell()); tcHeader[9].Attributes.Add("bgcolor", "Khaki"); tcHeader[9].Text = "薪水"; tcHeader.Add(new TableHeaderCell()); tcHeader[10].Attributes.Add("bgcolor", "Khaki"); tcHeader[10].Text = "家庭住址"; tcHeader.Add(new TableHeaderCell()); tcHeader[11].Attributes.Add("bgcolor", "Khaki"); tcHeader[11].Text = "邮政编码"; break; } }} 呵呵。。二楼的做得是我想要的效果了,不过那是在WEB下的。我现在是写C/S的,用的是DataGridView,在里面不知道怎么搞,嘿嘿。思路是会了,但里面的很多类我还没掌握,我刚学,你能帮看看用DataGridView做一个吗?谢了。 http://www.cnblogs.com/liuke209/archive/2006/07/29/463023.htmlhttp://www.cnblogs.com/neuhawk/archive/2006/10/24/538232.html 谢谢chagel的回答,虽然不是完全正确的答案,但在B/S里确实能实现,我在CSDN里的下载栏里搜到了这个DataGridView二维表头的实例了,大家可以去看看.相互学习:http://download.csdn.net/source/847575 为什么生成缩略图程序运行久了就会出问题? 后台线程与普通的线程有什么区别? 请教高手 c#点选checkbox如何成批修改信息 版主慢删,关于组件新增属性的新手问题 请教各位关于Socket传送文件结果不一样的问题 请教:在datagrid中添加数据,”添加“按钮是放在datagrid外面,添加的内容放在页脚里,急急!!(是完全可编辑的datagrid) 数据库频繁读写操作对程序所带来的影响 再次提问,C#引用OCX问题 C#怎么打包! 思归请进来帮忙,正则表达式.解释一下就好. 请问大家。.net如何读取oracle的自定义类型。 c# 操作系统右键菜单问题 请win32高手回答!!!!!
GridView合并表头多重表头无错完美版(以合并3列3行举例)后台代码:
//这里就是解决方案
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("rowspan", "3"); //跨Row
tcHeader[0].Attributes.Add("bgcolor", "white");
tcHeader[0].Text = "";
tcHeader.Add(new TableHeaderCell());
//tcHeader[1].Attributes.Add("bgcolor", "Red");
tcHeader[1].Attributes.Add("colspan", "6"); //跨Column
tcHeader[1].Text = "全部信息</th></tr><tr>"; //第二行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[2].Attributes.Add("bgcolor", "DarkSeaGreen");
tcHeader[2].Text = "身份证号码";
tcHeader.Add(new TableHeaderCell());
tcHeader[3].Attributes.Add("bgcolor", "LightSteelBlue");
tcHeader[3].Attributes.Add("colspan", "2");
tcHeader[3].Text = "基本信息";
tcHeader.Add(new TableHeaderCell());
tcHeader[4].Attributes.Add("bgcolor", "DarkSeaGreen");
tcHeader[4].Text = "福利";
tcHeader.Add(new TableHeaderCell());
tcHeader[5].Attributes.Add("bgcolor", "LightSteelBlue");
tcHeader[5].Attributes.Add("colspan", "2");
tcHeader[5].Text = "联系方式</th></tr><tr>"; //第三行表头
tcHeader.Add(new TableHeaderCell());
tcHeader[6].Attributes.Add("bgcolor", "Khaki");
tcHeader[6].Text = "身份证号码";
tcHeader.Add(new TableHeaderCell());
tcHeader[7].Attributes.Add("bgcolor", "Khaki");
tcHeader[7].Text = "姓名";
tcHeader.Add(new TableHeaderCell());
tcHeader[8].Attributes.Add("bgcolor", "Khaki");
tcHeader[8].Text = "出生日期";
tcHeader.Add(new TableHeaderCell());
tcHeader[9].Attributes.Add("bgcolor", "Khaki");
tcHeader[9].Text = "薪水";
tcHeader.Add(new TableHeaderCell());
tcHeader[10].Attributes.Add("bgcolor", "Khaki");
tcHeader[10].Text = "家庭住址";
tcHeader.Add(new TableHeaderCell());
tcHeader[11].Attributes.Add("bgcolor", "Khaki");
tcHeader[11].Text = "邮政编码";
break;
}
}
}
http://www.cnblogs.com/neuhawk/archive/2006/10/24/538232.html