- 浏览: 2583278 次
- 性别:
- 来自: 小胖儿的大城
文章分类
最新评论
-
ni4wangba0:
ni4wangba0 写道亲测,算法有问题。对不起,其实是我自 ...
谈谈"求线段交点"的几种算法(js实现,完整版) -
ni4wangba0:
亲测,算法有问题。
谈谈"求线段交点"的几种算法(js实现,完整版) -
kers007:
苹果不让Webapp 在appstore 里发布,我不知道对 ...
苹果真的要在 AppStore 里封杀 WebApp 吗? -
striveandlive:
fins = js大牛
[原创]GT-Template, 一个超轻量级的js模板工具. -
AlwaysYang:
基础扎实的才能行走天下。
关于body的"大小"在ie和ff下的一些基础知识
GT-Grid 1.0 基础教程(十)
教程说明:
这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
查看其他教程,以及最新版本信息,请点击这里
第十章: 事件
这一章将讲解一下 GT-Grid中的一些关键的 常用的事件机制.
本章对应示例文件: "mydemo10.html".
为grid加入事件,只需要在 gird的定义中写入GT-Grid所支持的事件即可.
如 :
GT-Grid本身支持很多事件, 但是其中并不是所有事件都是常用或者重要的. 本章将结合示例,挑选几个常用的事件进行讲解.
更多的事件,请查阅"参考指南".
在正式讲解"事件"之前,先让我们来了解一下 GT-Grid创建并显示一个列表的大致步骤:
1 根据定义,创建列表的外观(外框,布局)
2 创建列表的各个部件(表头,工具栏等等)
3 第2步完成后, 去异步的加载数据
4 第3步完成后, 创建列表数据区,并显示
在列表创建之后, 再对列表执行 刷新 翻页 等数据操作时, 实际上执行的只是第3 4步.
在明白上面的几个步骤之后,我们来看看今天要讲解的事件:
注意:
下列所有名为beforeXXXX的事件,都是在发生XXXX动作之前被调用, 如果该事件函数的返回值为false, 那么就可以阻止XXXX动作的发生.
对于上面提到的事件, 仅仅有这些简短的文字说明,也许大家无法完全理解,
建议大家可以动手试一试, 为grid指定上述事件, 然后在事件里进行 alert ,好好体会一下这些事件触发的时机.
=========================================
下面将结合一个示例,来为大家演示如何利用事件来强化列表.
我们假设这样一个场景: 选中列表中的某一行,然后将这一行对应的记录添加到列表下方的一个表单内.
首先我们在列表的下方加入一个极其简单的form:
然后为列表指定 afterSelectRow事件.
运行一下就可以看到效果了. afterSelectRow 对应函数内的具体代码大家不必关注.
大家要在意的是 这个事件触发的时机 ---- 选中某行之后.
以及 事件的参数 : record ---- 选中行对应的记录.
合理的使用该函数,可以比较轻松的实现主从表 列表与其他组件联动等效果.
=========================================
下面我们再举一个例子. 假设这样一个场景: 在编辑数据时,对于性别未知的同学,我们不允许编辑其数据.
那么我们可以利用 beforeXXXX 类事件的拦截机制来实现.
现在运行一下示例, 在点击 性别为"未知"的学生时, 我们无法进入编辑状态,也无法删除之.
=========================================
在诸多事件中, beforeLoad 和 beforeSave.这两个事件需要特别说一下.
之所以要特别提一下它们,是因为这两个事件处在 客户端与服务端通讯的关键路径上.
它们的第一个参数就是 GT-Grid要发送给服务端的数据.
开发人员可以在这两个事件中, 对提交的数据进行个性化处理(改变/增加/删除提交的数据)
同时也可以利用return false 来阻止load/save操作,
甚至也可以在这两个事件里alert出提交的数据内容,来帮助自己调试程序.
在这里只举一个简单的例子,
这个示例中, 用户在点击"save"按钮时,将会弹出提示信息,询问用户确实要提交数据吗,
点击确定 将会提交, 点击取消 将什么都不做.
代码 : GT.toJSONString(reqParam,true)
用来生成 提交参数的JSON串(第二个参数为是否是格式化输出), 可用来实现对提交数据的监控.
=========================================
关于GT-Grid的事件就先讲到这里, 事件其实是个很灵活的机制, 只要合理的利用,并且发挥自己的想象力, 可以扩展出很多GT-Grid本身不具备的功能.
好了 本章就暂时说这些吧. 下一章见.
我想给用户一个提示,删除并非真正删除,必须要保持后才能生效。我的想法是用户第一次按删除按钮后跳alert,以后都不跳,请问应该怎么实现
这个不难吧 做个页面级的变量
然后在alert之前判断一下
教程说明:
这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
查看其他教程,以及最新版本信息,请点击这里
第十章: 事件
这一章将讲解一下 GT-Grid中的一些关键的 常用的事件机制.
本章对应示例文件: "mydemo10.html".
为grid加入事件,只需要在 gird的定义中写入GT-Grid所支持的事件即可.
如 :
var gridConfig={ /* ... 略去其他属性设置 ...*/ afterSelectRow : function(record ,row, rowNo,grid){ // ... ... } }
GT-Grid本身支持很多事件, 但是其中并不是所有事件都是常用或者重要的. 本章将结合示例,挑选几个常用的事件进行讲解.
更多的事件,请查阅"参考指南".
在正式讲解"事件"之前,先让我们来了解一下 GT-Grid创建并显示一个列表的大致步骤:
1 根据定义,创建列表的外观(外框,布局)
2 创建列表的各个部件(表头,工具栏等等)
3 第2步完成后, 去异步的加载数据
4 第3步完成后, 创建列表数据区,并显示
在列表创建之后, 再对列表执行 刷新 翻页 等数据操作时, 实际上执行的只是第3 4步.
在明白上面的几个步骤之后,我们来看看今天要讲解的事件:
注意:
下列所有名为beforeXXXX的事件,都是在发生XXXX动作之前被调用, 如果该事件函数的返回值为false, 那么就可以阻止XXXX动作的发生.
onComplete : function(grid) 该事件在第4步完成之后调用,唯一参数就是 grid对象本身. beforeRefresh : function(grid) 该事件在第3步完成之后, 第4步之前调用,唯一参数就是 grid对象本身. beforeLoad : function(reqParam,grid) 该事件在第3步完成之前(从服务端加载数据之前) 参数reqParam为Gt-Grid准备传递给服务端的json对象, 大家可以根据需求来改动里面的指. 最后一个参数是 grid对象本身. beforeSave : function(reqParam,grid) 该事件在点击保存按钮之后, 数据提交到服务端之前被执行. 参数reqParam为Gt-Grid准备传递给服务端的json对象, 大家可以根据需求来改动里面的指. 最后一个参数是 grid对象本身. beforeSelectRow : function(record ,row, rowNo,grid) 该事件在选中某一行的之前触发(点击某一行,但是GT-Grid还没有把该行标记为选中行) record 为欲选中的行对应的记录, row为欲选中的行(tr)对象, rowNo为行号, 最后一个参数是 grid对象本身. afterSelectRow : function(record ,row, rowNo,grid) 该事件在选中某一行的之后触发(点击某一行,且GT-Grid已经把该行标记为选中行) record 为刚刚选中的行对应的记录, row为刚刚选中的行(tr)对象, rowNo为行号, 最后一个参数是 grid对象本身. onClickCell : function(value,record,cell,row,rowNo,columnObj,grid,event) 该事件在点击列表区的单元格时触发 点击的单元格对应的记录值, 点击的单元格所在行对应的记录, 点击的单元格(td)对象, 点击的单元格所在的行(tr)对象, 点击的单元格对应的列定义, grid对象本身, 点击动作对应的浏览器事件对象 onDblClickCell : function(value,record,cell,row,rowNo,columnObj,grid,event) 该事件在双击击列表区的单元格时触发 双击的单元格对应的记录值, 双击的单元格所在行对应的记录, 双击的单元格(td)对象, 双击的单元格所在的行(tr)对象, 点击的单元格对应的列定义, grid对象本身, 双击动作对应的浏览器事件对象 beforeEdit : function(value,record,columnObj,grid) 该事件在编辑单元格之前触发.(点击某个可编辑单元格,进入编辑状态之前) value 为欲编辑的值 , record 为欲编辑的值所在的记录, columnObj为欲编辑的列对应的列定义, 最后一个参数是 grid对象本身. beforeDelete : function(record,row,grid) 该事件在删除记录之前触发. record 为欲删除的记录,row为删除的记录所在的行, 最后一个参数是 grid对象本身.
对于上面提到的事件, 仅仅有这些简短的文字说明,也许大家无法完全理解,
建议大家可以动手试一试, 为grid指定上述事件, 然后在事件里进行 alert ,好好体会一下这些事件触发的时机.
=========================================
下面将结合一个示例,来为大家演示如何利用事件来强化列表.
我们假设这样一个场景: 选中列表中的某一行,然后将这一行对应的记录添加到列表下方的一个表单内.
首先我们在列表的下方加入一个极其简单的form:
<form> 学 号 : <input type="text" id="no" name="no" /> <br/> 姓 名 : <input type="text" id="name" name="name" /> <br/> 年 龄 : <input type="text" id="age" name="age" /> <br/> 性 别 : <input type="text" id="gender" name="gender" /> <br/> 英 语 : <input type="text" id="english" name="english" /> <br/> 数 学 : <input type="text" id="math" name="math" /> <br/> 总成绩 : <input type="text" id="total" name="total" /> </form>
然后为列表指定 afterSelectRow事件.
var gridConfig={ /* ... 略去其他属性设置 ...*/ afterSelectRow : function(record ,row, rowNo,grid){ for (var k in record) { var field=GT.$(k); if (field) { field.value=record[k]; } } } }
运行一下就可以看到效果了. afterSelectRow 对应函数内的具体代码大家不必关注.
大家要在意的是 这个事件触发的时机 ---- 选中某行之后.
以及 事件的参数 : record ---- 选中行对应的记录.
合理的使用该函数,可以比较轻松的实现主从表 列表与其他组件联动等效果.
=========================================
下面我们再举一个例子. 假设这样一个场景: 在编辑数据时,对于性别未知的同学,我们不允许编辑其数据.
那么我们可以利用 beforeXXXX 类事件的拦截机制来实现.
var gridConfig={ /* ... 略去其他属性设置 ...*/ beforeEdit : function(value,record,columnObj,grid){ if ('U'==record['gender']){ return false; } }, beforeDelete : function(record,row,grid){ if ('U'==record['gender']){ return false; } } }
现在运行一下示例, 在点击 性别为"未知"的学生时, 我们无法进入编辑状态,也无法删除之.
=========================================
在诸多事件中, beforeLoad 和 beforeSave.这两个事件需要特别说一下.
之所以要特别提一下它们,是因为这两个事件处在 客户端与服务端通讯的关键路径上.
它们的第一个参数就是 GT-Grid要发送给服务端的数据.
开发人员可以在这两个事件中, 对提交的数据进行个性化处理(改变/增加/删除提交的数据)
同时也可以利用return false 来阻止load/save操作,
甚至也可以在这两个事件里alert出提交的数据内容,来帮助自己调试程序.
在这里只举一个简单的例子,
var gridConfig={ /* ... 略去其他属性设置 ...*/ beforeSave : function(reqParam,grid){ return confirm("您确定要提交如下数据到 "+grid.saveURL + " 吗?\n "+GT.toJSONString(reqParam,true)+"\n"); } }
这个示例中, 用户在点击"save"按钮时,将会弹出提示信息,询问用户确实要提交数据吗,
点击确定 将会提交, 点击取消 将什么都不做.
代码 : GT.toJSONString(reqParam,true)
用来生成 提交参数的JSON串(第二个参数为是否是格式化输出), 可用来实现对提交数据的监控.
=========================================
关于GT-Grid的事件就先讲到这里, 事件其实是个很灵活的机制, 只要合理的利用,并且发挥自己的想象力, 可以扩展出很多GT-Grid本身不具备的功能.
好了 本章就暂时说这些吧. 下一章见.
评论
5 楼
fins
2009-04-02
starnc 写道
我想给用户一个提示,删除并非真正删除,必须要保持后才能生效。我的想法是用户第一次按删除按钮后跳alert,以后都不跳,请问应该怎么实现
这个不难吧 做个页面级的变量
然后在alert之前判断一下
4 楼
starnc
2009-03-31
我想给用户一个提示,删除并非真正删除,必须要保持后才能生效。我的想法是用户第一次按删除按钮后跳alert,以后都不跳,请问应该怎么实现
3 楼
zcs_84
2009-02-13
能不能做个gt-Grid与JavaScript交互的例子呀。
最好搞个gt-Grid与ajax、jquery的交互
最好搞个gt-Grid与ajax、jquery的交互
2 楼
zcs_84
2009-02-13
能不详细说明这个时间
onClickCell : function(value,record,cell,row,rowNo,columnObj,grid,event) {
} 这些参数下面有那些属性呀
参数: row 指 单元格(td)对象,那么document.all.row.offsetHeight该是支持的吧!
但是却达不到要求呀!
onClickCell : function(value,record,cell,row,rowNo,columnObj,grid,event) {
} 这些参数下面有那些属性呀
参数: row 指 单元格(td)对象,那么document.all.row.offsetHeight该是支持的吧!
但是却达不到要求呀!
1 楼
zcs_84
2009-02-13
请问 我要单击某个单元格 得到这个单元的td的Id属性 然后设置用jquery的$("#tdId").html("<font color ="red">1111</font>");
怎么实现呀
也就是GT—Grid 通过Td的Id 来操作table
请问怎么实现呀!
怎么实现呀
也就是GT—Grid 通过Td的Id 来操作table
请问怎么实现呀!
发表评论
-
那些成天说我的GT-Grid抄袭的人注意了
2009-03-19 22:01 10153你们能够在浩瀚的网络中找到 sigmawidgets htt ... -
[发布]GT-Grid 1.42 版 ★& "前后台结合示例"★2009-01-15更新
2009-01-15 02:41 27351=============================== ... -
[发布]GT-Grid 1.36 版 ★& "前后台结合示例"★2008-12-01 12AM 更新
2008-12-01 01:27 10312(最后更新时间 :12月1日 中午12点时, 修正了 1.36 ... -
GT-Grid 近期将会发布一个bug修正版本,然后将会进行较大的重构
2008-11-11 00:12 3824GT-Grid 近期将会发布一个bug修正版本, 主要修正上一 ... -
[发布]GT-Grid 1.25 版 ★& "前后台结合示例" ★2008-10-21 更新
2008-10-21 17:25 19628首先 先道个歉. 之前许诺过 10月20日之前发布,结果迟到了 ... -
对于复杂javabean到json串的转换,建议使用FlexJSON
2008-10-16 11:23 9846gt-grid自带的那个 javaBean与json的转换工具 ... -
[通知] GT-Grid 讨论群 变更
2008-10-10 15:54 2989GT-Grid的群建立至今, 用户早已满员, 每日还有很多申请 ... -
10月中旬支持导出excel和csv的gt-grid会推出
2008-10-04 21:19 262710月中旬支持导出excel和csv的gt-grid会推出 ( ... -
[发布]GT-Grid 1.18版 & "前后台结合示例"更新 ★2008-09-12发布
2008-09-12 16:40 12528这个版本带有 与java后台结合的示例. 单独的最新版本的 ... -
调查: 关于GT-Grid导致IE崩溃的问题
2008-09-09 15:39 4034有网友反应 对GT-Grid进行操作时 会导致IE崩溃. ... -
[发布] GT-Grid 1.15 版 (080908发布) ★
2008-09-08 14:10 4094GT-Grid 1.15版 说明文档. 这篇文档主要说明一些 ... -
[发布] GT-Grid 1.12 版 (080904发布) ★
2008-09-03 11:02 5305GT-Grid 1.12版 说明文档. 这篇文档主要说明一些 ... -
奥运结束, GT启航
2008-08-25 10:11 2758前一阵由于关注奥运 GT做的工作比较少 奥运结束了 GT该再 ... -
最近奥运,GT的开发暂停一段时间,抱歉了
2008-08-18 20:13 19058月8号之后 GT的更新速度缓慢了,我回答问题也没有以前及时了 ... -
[发布] GT-Grid 1.0 奥运版 (080808发布) ★ without doc
2008-08-08 17:17 19305由于文档工作滞后 导致我本来放弃了今天发布的念头 但是还是不忍 ... -
GT-Grid 1.0 基础教程(十二)
2008-08-05 02:06 17432GT-Grid 1.0 基础教程(十二) 教程说明: 这是一 ... -
GT-Grid 1.0 基础教程(十一)
2008-08-03 22:29 8156GT-Grid 1.0 基础教程(十一 ... -
GT-Grid 1.0 基础教程(九)
2008-07-28 00:43 15520GT-Grid 1.0 基础教程(九) 教程说明: 这是一个 ... -
我的两点请求, 麻烦关注GT和ecside的朋友看一下,谢谢了
2008-07-27 21:55 29651 恳请大家以后不要通 ... -
GT-Grid 1.0 基础教程(八)
2008-07-27 01:13 14926GT-Grid 1.0 基础教程(八) 教程说明: 这是一个 ...
相关推荐
GT-Grid 1.0 基础教程GT-Grid 1.0 基础教程GT-Grid 1.0 基础教程GT-Grid 1.0 基础教程
教程说明: 这是一个告诉大家如何快速的利用GT-Grid开发列表的基础教程.以后会推出"高级教程".
GT-Grid 教程示例 GT-Grid 教程示例GT-Grid 教程示例GT-Grid 教程示例
gt-grid 基础教程。胖哥的gt-grid用于页面展示的功能强大的表格组件
gt-grid是一款不错的框架,我写的这个gt-grid例子,用的都是基本框架,里面都用详细的注释,希望能对学习gt-grid的朋友有所帮助
GT-Grid 是一个基于Ajax技术的列表组件. 拥有丰富的功能以及良好易用性和用户体验. 它是 EC Side列表组件 的更新换代产品. (ECSide是GT-Grid作者的另一作品, 是一个在国内拥有广泛用户群的列表组件,它基于传统的jsp...
GT-Grid 的最新版本 + 与后台结合的例子 大家重点看action 里是如何从客户端取数据 以及如何向客户端送数据的
最新的GT-Grid vs EXT-Grid例子是用GT-Grid表格控件和EXT-Grid表格控件来进行比较、里面有三个例子、看了这后觉得这两种表格显示数据控件功能实在太强大啦..
GT-grid 例子
gt-grid 样例源码
网页Grid组件 GT-Grid组件 牛逼的Grid组件 Web开发理想的Grid,内附说明和例子
最新版GT-grid-好用的表格组件,支持分页,过滤,排序等等
NULL 博文链接:https://fins.iteye.com/blog/283672
gt-grid_1[1].25 分页 用ajax 开发的 里面有例子与还有原代码
列表组件N0.1(国产) 用过之后你才知道优化 初学者提供问题解答哈 qq 406235245
NULL 博文链接:https://wfl8015.iteye.com/blog/310981
grid控件列表!这是jquery的一个grid插件GT-GRID,支持分页、排序等功能
ag-grid我没找到汉化提示的js(没仔细找),下载了官方的社区版js代码,记事本查找替换的,如果没积分可以自己搜索替换,我只改了contains(模糊查找)、not contains(模糊过滤)、equals(精确查找)、not equals...
前端开源库-ag-grid-communityAG网格社区,支持javascript/react/angularjs/web组件的高级数据网格/数据表
CATIA 制图放置车线使用插件,制图放置车线使用插件制图放置车线使用插件