GridView凍结列的实现.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

sd47f8cI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档