- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GridView凍结列的实现
GridView冻结列的实现
?
关于表格的冻结列(冻结标题),网上有一些现成的框架,经测试,挺好用的,如:
/blogs/darkthreadtw/archive/2009/02/17/4240.aspx
该框架的执行脚本为:
script type=text/javascript
??????? $(function() {
??????????? $(#GridView1).toSuperTable({ width: 640px, height: 480px, fixedCols: 2 })
??????????? .find(tr:even).addClass(altRow);
??????? });
/script
?
需要注意的是,该脚本未必总是好用,因为很多时候,#GridView1并不能取到GridView1,事实上,服务器控件在解析后,ID的名称都发生了变化,好在有ClientID可以追踪,可以在cs文件的pageLoad中加入以下代码,代替上句脚本:
string?strScript =?$(function () {$(#?+ GridView1.ClientID +?).toSuperTable({ width: 640px , height: 480px , fixedCols: 2 }).find(tr:even).addClass(altRow);});;
ScriptManager.RegisterStartupScript(this.Page,?this.GetType(),?GridView1, strScript,?true);
?
但在我的项目中,同时运用了另一个“遮罩层”的框架,就是大名鼎鼎的GreyBox_v5_54。这两个框架用在一起的时候,问题出现了,仅有IE能同时实现遮罩层和supertable的效果,其他浏览器只能二选一…
我JS基础一般,看他们的代码很吃力,于是就自己设想做一个具有冻结列效果的GridView。
?
网上搜了下,实现思路大体一样:
1.??????将GridView装在一个带有滚动条的容器中
2.??????需要冻结的列,其定位为relative
3.??????冻结列的左距离与滚动条的位置关联
?
最常见的写法是
.fixed { position:relative;
cursor:default;
left: expression(this.parentElement.offsetParent.scrollLeft);}
?
但首先,这种写法并不能被所有浏览器所解析(FF好像就不行),而且可固定的列在滚动条拖动时会闪烁,严重影响视觉效果!
?
事实上,仔细想想,上述实现方法的思维是逆向的——GridView的其他列实际上并没有动,反倒是需要固定的列的位置在随滚动条位置的变化而变化。于是,“该动的不动,该静的在动”,由此引发视觉效果的不和谐,为什么不能反过来呢?
?
可以先让表格的位置固定,然后不需要的固定的列,其位置随滚动条变化而变化。
思路确定,就可以开工了。
先用一个容器将GridView装起来(该容器的宽度显然会小于GridView的宽度,否则,没有固定列的必要了)
div?id=grid
????? ?????asp:GridView?ID=GridView1?runat=server?CssClass=datagrid gridWidth
????? ?????HeaderStyle?BackColor=#ffcccc?/???????
??? ???????/asp:GridView
????/div
?
?
再做一个滚动条:
div?id=total?style=?overflow:auto;?
??????div?style=?height:20px;?display:block;?class=gridWidth?
???????????p/p
??????????/div
?/div
?
对应的样式表为:
?
.datagrid?td?{?padding:4px;?height:20px;?text-align:center;}
.datagrid?th?{padding:8px;}
.fixed{width:60px;?border:none;?position:relative;?left:0px;?top:0px;?background:#fcc;?z-index:2; }
.gridWidth{?width:4000px;}???????????????/*滚动条宽度与GridView一致*/
.unfixed{?table-layout:fixed;?position:relative;?border:none; }
#gri
您可能关注的文档
最近下载
- 川教版(2024)三年级上册信息科技 3.8电子小报记见闻 课件.pptx VIP
- 2023年二级建造师《公路实务案例分析》考前重点知识总结.pdf VIP
- 《客舱安全与应急处置》——课件:空中烟雾和火灾的基本处置程序.pptx VIP
- 食品加工企业全套生产管理记录台账(必备42表).pdf
- GB175-2023《通用硅酸盐水泥》-培训.pptx
- 砖砌化粪池标准图集.pptx
- 川教版(2024)三年级上册信息科技 3.7在线交流聊计划 课件.pptx VIP
- 6年级多届YMO数学初选试卷汇编.docx
- 道路救援及理赔考试卷及答案.docx
- 卫生院“优质服务基层行”支撑材料(2.2.1.6全科医疗服务).docx VIP
文档评论(0)