1.问题描述:
由于gridview里面的数据过多,有可能有上万条,客户又不希望太多的分页,那样查找不方便,更不希望原本内嵌在panel里的gridview下拉到底部时,看不到原先的表头。因此要么把表头固定,不随着scrollbar下拉而滚动到看不到的地方;要么将表头悬浮在页面上。
2.方案选择:
悬浮表头是可以实现的,但如果页面太窄,而gridview的header过长而无法充分显示的时候,悬浮的表头是无法水平滚动的。因此第二方案排除。
关于第一方案,基本思路是用两个div:divTitle,divData。divTitle负责显示固定的header,divData包含gridview,在载入页面时,用创建table的方式把gridview的header按照其格式复制到divTitle中,同时gridview不显示header。用onscroll方法使scrollbar联动的方式,同步水平滚动两个div。
参考:http://www.codeproject.com/Articles/61775/Grid-View-with-Fixed-Header
网上还有许多另外的实现,如clone整个gridview到divTitle中,然后删除所有的row,只保留表头。但这样太简单粗暴,不适合大量的数据。
3.问题解决:
1)在js执行时,无法找到gridview。
需要设置ShowHeaderWhenEmpty=true,该属性默认为false。
2)onscroll="