实现简单多层表头的办法
2004-10-21 12:40
197 查看
看到CSDN上有人问,如何实现多层表头的问题,将自己的办法拿出来,和大家讨论。要实现多层表头,人人都能想到的办法是:顶上放一个html的table,下面放一个DataGrid,但关键是table元素的单元格与DataGrid列的对齐问题,因为对于table元素即使为每一个单元格定制了宽度,单元格也会随其内容变宽,可以看下面的例子:
<table border=1>
<tr>
<td width=100>1111</td>
<td>22222</td>
<tr>
<td width=50>3333</td>
<td>4444</td>
<tr>
<td width=50>55555</td>
<td>77777777777</td>
</tr>
</table>
如果将上面的<td width=100>1111111</td>改为<td width=100>1111111111111111111111</td>,单元格会跟着变宽,因此给顶上的table元素指定列宽行不通。
当然,也可以采用这种方式指定列宽<td><div class=css1>22222222222222222222222<div></td>
.css1
{}{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
width:100px;
}
但缺点是DataGrid Render时也要加此样式。
我的办法很简单,具体是:
1、自己设计表头,就是设计table元素,有插入行、插入列、删除行列、合并行列等。表头存成xml或html的table格式。我是用服务器端代码写的,好像有js的,如swap或FreeTextBox,不知有没有合并、拆分单元格功能。
2、在表头下面放一个DataGrid,不过要重写这个DataGrid的render方法,去除其<table ......>部分,同时表头去除</table>。这样使表头table和DataGrid render后构成一个table元素。我写了一个自定义报表的工具就用了这种方法。
重写这个DataGrid的render方法:
protected override void Render(HtmlTextWriter output)
最后发发牢骚,不要打压能力比自己强的人,不要因为自己能力不如别人就别人的坏话,也不要看不起能力不如自己的人。如果你是项目组的头,一定要将这样的人剔除出去,这样的人太浮躁,一般不能踏踏实实干活,老让别人帮助解决问题,最后却说是自己解决的。一个老鼠屎坏了一锅汤呀,如果项目组的头是这样的人,组员就倒霉了,所有功劳肯定都是这头的,这是需要更上层领导的处理,不过一般这样的人都和领导关系很好,因为这样的人很会......领导,特别是国有企业里。个人建议这样的人到政府去做官。
<table border=1>
<tr>
<td width=100>1111</td>
<td>22222</td>
<tr>
<td width=50>3333</td>
<td>4444</td>
<tr>
<td width=50>55555</td>
<td>77777777777</td>
</tr>
</table>
如果将上面的<td width=100>1111111</td>改为<td width=100>1111111111111111111111</td>,单元格会跟着变宽,因此给顶上的table元素指定列宽行不通。
当然,也可以采用这种方式指定列宽<td><div class=css1>22222222222222222222222<div></td>
.css1
{}{
white-space:nowrap;
overflow:hidden;
text-overflow:ellipsis;
width:100px;
}
但缺点是DataGrid Render时也要加此样式。
我的办法很简单,具体是:
1、自己设计表头,就是设计table元素,有插入行、插入列、删除行列、合并行列等。表头存成xml或html的table格式。我是用服务器端代码写的,好像有js的,如swap或FreeTextBox,不知有没有合并、拆分单元格功能。
2、在表头下面放一个DataGrid,不过要重写这个DataGrid的render方法,去除其<table ......>部分,同时表头去除</table>。这样使表头table和DataGrid render后构成一个table元素。我写了一个自定义报表的工具就用了这种方法。
重写这个DataGrid的render方法:
protected override void Render(HtmlTextWriter output)
最后发发牢骚,不要打压能力比自己强的人,不要因为自己能力不如别人就别人的坏话,也不要看不起能力不如自己的人。如果你是项目组的头,一定要将这样的人剔除出去,这样的人太浮躁,一般不能踏踏实实干活,老让别人帮助解决问题,最后却说是自己解决的。一个老鼠屎坏了一锅汤呀,如果项目组的头是这样的人,组员就倒霉了,所有功劳肯定都是这头的,这是需要更上层领导的处理,不过一般这样的人都和领导关系很好,因为这样的人很会......领导,特别是国有企业里。个人建议这样的人到政府去做官。
相关文章推荐
- Bootstrap-table:轻松实现多层表头
- PHP简单实现HTTP和HTTPS跨域共享session解决办法
- 在Linux中实现定时任务 最简单的办法或许就是它了
- 响应式表格之固定表头的简单实现
- 我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)
- Restful风格的简单实现办法
- C# int to BCD encode(最简单的实现办法)BCD编码编程实现算法
- Android三种超简单办法,实现按钮倒计时
- 实现多层菜单(=_=!)(很傻又很土的办法)
- 用最简单的办法,实现最好的打印(用BCB调用WORD的打印功能)
- 表头固定,随内容可水平拖动的超简单实现
- 一个购物车的简单实现(多层开发)
- 用最简单的办法,实现最好的打印(用BCB调用WORD的打印功能)
- jqGrid表格插件实现多行表头的解决办法
- 我要多开梦幻手游PC端(梦幻手游PC端多开的简单分析及实现办法)(二)
- 一个购物车的简单实现(多层开发)
- PHPExcel冻结(锁定)表头的简单实现方法
- PHP简单实现HTTP和HTTPS跨域共享session解决办法
- WebUI中 DataGrid多层表头 的终极解决办法
- asp.net datagrid实现多层表头