发布一个锁定行列的一种方法
功能介绍:
可以实现锁定表格的行和列的功能,效果和excel里的冻结窗格类似,当然没有excel那么强大了,只是类似。
问题:
当一个table太大而导致在屏幕里显示不下的时候,ie会出现滚动条,但是这时候就不好看了,对用户的操作也不是很方便。于是我们就想给他加一个限制,在制定的范围内滚动。
如何实现呢?网上也有不少实现方法了,效果如何就不发表意见了,这里主要是想说一下我的思路。
思路:
1、其实思路很简单,div有一个“功能”,给他的style 加上 "clear: none; overflow: auto; width: 100px; height:100px" 后,div就会出现滚动条(当然要在div里的内容超出div设置的时候)。这样div里的table 就可滚动了。但是行和列也以一起跟着动了起来。
2、行和列如何“锁定”呢?这里我用了一个笨招,用三个div来分别放置行和列,以及行列交叉的地方。这样看起来就像是别锁定住了。
3、当然行和列并不是不动就可以了,也要根据div的滚动条的滚动作出变化(移动)才可以,这里就要使用js来帮忙了。
优点:
1、侵入性小。只需要在。aspx页面里加几个div,引用一个。js文件就可以了。其他的文件里的代码都不用修改。
2、适用范围比较广:针对生成的 <table> 标签,而不针对服务器控件,所以datagrd、gridview、datalist等都可以使用,只要输出的是 table 形式的html代码就可以。
3、可以同时锁定行和列,行数和列数可以自定义。“锁定”效果好,不会出现“跳动”的现象。
缺点:
1、占用客户端的资源比较大,行数多的时候会有一点点慢。
2、不支持ff.
js的能力还是不够强,目前只能这样了,但这不是最终的结果,还是要更新升级的。发出来也是想请各路高手指点一二。
说了这么多了,可能大家还是没有看明白,不好意思,表达能力比较差。发代码看看吧,呵呵。
。aspx文件里面需要加的代码:
<div onscroll="myscroll(this)" id="dmain" style="clear: none; overflow: auto; width: 500px; height: 150px">
你的控件控件(文章来源 www.iocblog.net)
</div>
<div id="dtop" style="clear: none; left: 10px; overflow: hidden; width: 0px; position: absolute; top: -10px; height: 0px; background-color: #ffffff">放置行</div>
<div id="dleft" style="clear: none; left: 10px; overflow: hidden; width: 0px; position: absolute; top: 10px; height: 0px; background-color: #ffffff">放置列</div>
<div id="dmid" style="clear: none; left: 10px; overflow: hidden; width: 0px; position: absolute; top: 10px; height: 0px; background-color: #ffffff"></div>
Tag: Table
文章整理:iocblog
版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。