论坛首页 入门技术论坛

[开发笔记]GT-Grid基本原理 之 :展现层结构简介

浏览 2550 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-10-30  
我打算陆陆续续的写一些 GT-Grid 实现原理 和方式的文章.
一来自己做个记录
二来可以让更多的朋友们看到,便于大家指出我的不足
三来也许可以给一些朋友一些有用的提示.

但是这个暂时还只会是比较粗浅的, 类似详细设计那种细致的文档我还没有时间写,写了我估计也不会有人看吧 呵呵

今天先开始第一篇 展现层结构简介.


======================
列表组件最后呈现出的页面结构如图所示.


======================
采用表头和表体分离设计.
“列表头容器”为”内部超出大小时,滚动内部内容,但是隐藏滚动条”
“列表体容器” 为”内部超出大小时,滚动内部内容,并显示滚动条”
难点:列表滚动的同步(列表头 列表体 冻结列 列表编辑器....), 各个列的宽度的同步....

======================
列表单元格内部嵌套一个div.

======================
固定列表头的实现:
在列表体容器的onscroll事件中,做好  “列表头容器”与“列表体容器”的水平方向同步.
这样就可以实现,垂直方向列表头固定在列表顶端,水平方向与列表体同步的效果.

======================
冻结列的实现:
首先要冻结的列在列表的前面(就是说只能冻结列表的前面若干列).
创建一个浮动层div,  层内放置一个和要显示的数据列表一样的列表,但是只有要冻结的那几列就可以. 然后将这个浮动层覆盖在列表之上, 这样当列表横向滚动时候,就会产生那几列被冻结的效果.

======================
调整列宽的实现:
记录调整开始时鼠标位置, 记录调整结束时鼠标位置. 取得两者的差值.
用调整的列当前的宽度 + 得到的差值,就是列的新宽度.
用这个新宽度更新列对应的css样式.(用这种方式会很好的完成同步,浏览器会对所有使用该样式的td自动调整宽度,无需人为实现宽度的同步)

======================
客户端排序:
就是根据一定条件,对 列表体table的tr进行重新排列.

======================
编辑:
单击(或双击,可配置)单元格,则该单元格进入编辑状态.
组件会根据所在列的配置,调出响应的编辑控件.控件会自动覆盖所编辑的单元格.
成功编辑后,将新值填入相应的单元格(td), ,并更新客户端数据集,同时隐藏编辑控件.

======================
新增
为列表体添加一行(tr以及相应的td),并更新客户端数据集,用户可利用编辑组件添入数据.

======================
删除:
删除客户选中的行(tr以及相应的td),并更新客户端数据集.

  • 大小: 62.2 KB
   发表时间:2007-10-31  
做好搞个sample页面,这样可以让别人边动手,别学习
0 请登录后投票
   发表时间:2008-02-25  
支持一个~就感觉现在缺敢想敢做的人!
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics