- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
easyui_datagrid编辑器
1,建立编辑器 从api得知,扩展一种新的编辑器类型,需要提供以上几个方法。项目中正好需要一个checkbox 类型编辑器,但在easyui中并没提供这样的编辑器,那我们可以通过扩展编辑器来解决,扩展如下 $.extend($.fn.datagrid.defaults.editors, { checkbox: {//调用名称 init: function (container, options) { //container 用于装载编辑器 options,提供编辑器初始参数 var input = $(input type=checkbox class=datagrid-editable-input).appendTo(container); //这里我把一个 checkbox类型的输入控件添加到容器container中 // 需要渲染成easyu提供的控件,需要时用传入options,我这里如果需要一个combobox,就可以 这样调用 bobox(options); return input; }, getValue: function (target) { //datagrid 结束编辑模式,通过该方法返回编辑最终值 //这里如果用户勾选中checkbox返回1否则返回0 return $(target).prop(checked) ? 1 : 0; }, setValue: function (target, value) { //datagrid 进入编辑器模式,通过该方法为编辑赋值 //我传入value 为0或者1,若用户传入1则勾选编辑器 if (value) $(target).prop(checked, checked) }, resize: function (target, width) { //列宽改变后调整编辑器宽度 var input = $(target); if ($.boxModel == true) { input.width(width - (input.outerWidth() - input.width())); } else { input.width(width); } } }});新的编辑扩展好以后,跟系统默认的编辑器使用方式一样:2.获取编辑器datagrid 通过调用 beginEdit 传入要开始编辑行的对应的索引,该行进入编辑模式。通过 endEdit 或者 cancleEdit结束编辑模式,endEdit会提交一个数据变更记录,cancleEdit会还原为初始数据。getEditors以及getEditor 返回指定行当前编辑器,getEditor 底层调用getEditors 方法。getEditors 返回一个编辑器对象数组。3.编辑器事件 一个项目中存在这样三个需求 1,根据不同的操作结果,渲染不同编辑控件的操作模式,如以下图所示,用户选择小组1,日期控制范围必须到天,右侧日期控件提供按天选择展示。用户选择小组6,日期控制范围到月就可以了,右侧日期控件提供按月选择展示。 2,列表中存在开始日期,和结束日期必须控制开始日期不能大于结束日期或者结束日期不能大于开始日期 3,根据用户选择的开始日期,提取对应的年份。 针对这两个需求,该怎么实现呢? 先来了解下datagrid在编辑模式提供哪些可用事件,以及如何扩展一个新数据验证规则API中提供事件:扩展数据验证规则:$.extend($.fn.validatebox.defaults.rules, { //验证开始日期只能小于结束日期 sdatecompare: { validator: function (value, param) { var end = param[0]; if (typeof end == string) { end = $(param[0]);//结束日期 selector } if (!end.datebox(getValue)) { return true; } var endDate = new Date(end.datebox(getValue)); var CurDate = new Date(value); return CurDate endDate; }, message: 开始日期必须小于结束日期 }, edatecompare: { validator: function (value, param) { var start = param[0]; if (typeof start == string) { start = $(param[0]); //开始日期 selector } if (!start.datebox(getValue) || !value) { r
文档评论(0)