最近遇到这么一个需求
gridview中原有7个字段
column1 column2 column3 column4 column5 column6 column7
xxx xxx xxx xxx xxx xxx xxx
现在需要新增加4个字段,由于横向排列会比较长,所以希望可以把新增加的4个字段放在原有字段的下面,增加一个控制显示/隐藏的按钮来控制新行。
就是这个样子
column1 column2 column3 column4 column5 column6 column7
xxx xxx xxx xxx xxx xxx xxx button
column8:yyy column9:yyy column10:yyy column11:yyy
由于新的4个字段需要显示名称,所以可能需要合并该行,重新排列4个字段的显示
由于gridview生成的是表格,所以要换行处理起来比较困难。
如果换做datalist或者repeater,有了template的存在,就没有什么问题了。
或者,可以把gridview只保留一列,所有的东西都定义在一个templatefield里面,也就相当于repeater,实现起来也不难,只是标题和内容的对齐要控制。
google,百度,找了好久,没有什么结果。
CSDN上发了帖子,也是建议不要用gridview的。无奈,继续google。
意外发现,已经有人给出代码了。
google到的地址:http://www.dotnetspider.com/forum/159858-How-we-can-create-nested-gridview-asp-net.aspx
演示在这里:http://www.giswiz.com/nested_gridview_dropdown/
嗯,正是我想要的。
关键代码:
注意27行,这里做了一个inject,结束掉一行并且创建一个新行。这样,就可以将一行记录显示为两行,而又可以像操作一行记录那样操作改行记录和控件。
需要注意的是,结束掉的行的末尾,会多出来一个空列,会占用一点空间,需要把列隐藏掉。
回头想想,好像很久以前的时候,组里的老大曾经讲过这个东西。不常用到,忘了。
附上原作者的原文:
某同学提供了一个不错的东西:http://demos.devexpress.com/ASPxGridViewDemos/Columns/CustomizationWindow.aspx