前言

近来项目中使用到 easyui 来进行页面设计,感觉挺方便的,但是网上除了api外,其他有价值的资料比较少,故在此分享一点经验,供大家参考。
 

问题

JQuery easyUi datagrid 可编辑行的editor属性具有 min 和 max 属性,设置可以输入的最大值和最小值,但是这个是固定的,如下:
  1. {field:'workRate',title:'<%/*填报*/%><bean:message key="task.workloadnew.addreport.jsp.message005"/><br><%/*完成率*/%><bean:message key="task.workloadnew.addreport.jsp.message006"/>',align:'center',width:50,
  2. formatter:function(value, rowData, rowIndex){
  3. if(value && value!=0)
  4. {
  5. return value + '%';
  6. }
  7. else
  8. {
  9. return "";
  10. }
  11. },
  12. editor:{
  13. type:'numberspinner',
  14. options: {
  15. increment:10,
  16. min:0,
  17. max:100
  18. }
  19. }
  20. }
min:0,max:100 限定了每次该输入框只能输入的范围是 0 - 100,而我每条记录的输入的范围是根据这条记录来定的,也就是说每次都要重新指定。但是,
苦于editor:{...} 中不带自定义函数。故需要在其他内置函数中想办法。
 

解决办法

a. 在激活编辑状态时触发编辑器重置最大值和最小值

此方法的主要原理是激活编辑状态后,得到编辑器的jquery 对象,设置编辑器的范围,如:
  1. var editors = $('#workloadTable').datagrid('getEditors', rowIndex);
  2. var workRateEditor = editors[0]; // 百分比编辑框
  3. workRateEditor.target.numberspinner({min:rowData.minRate,max:rowData.maxRate})
rowData.minRate 和 rowData.maxRate 是每条记录的填报范围。
 
这个是编辑器激活时进行重置的,但是这个触发有缺点就是,编辑器的初始化已经完成了,而这里会重新初始化,相对于新建了一个编辑器对象,编辑器的宽度会自动调整,这时我们要调整宽度:
  1. workRateEditor.target.css("width","50");
但是还是会有其他问题,比如说每次重写触发的时候,会覆盖原来设置的值,这个操作性就下降了不少。。。也可以进行特殊处理。

b. 在激活编辑器状态前设置

  1. onBeforeEdit:function(rowIndex, rowData)
  2. {
  3. //任务完成100%, 并且已审核通过,不能编辑
  4. if(rowData && rowData.status && (rowData.status=='TASK_ASSIGNER_AUDITED' || rowData.status=='TASK_MONITOR_AUDITED') && rowData.finishRate == 100)
  5. {
  6. return false;
  7. }
  8. // 重要! 重新设置百分比填报范围
  9. var columnOption = $('#workloadTable').datagrid('getColumnOption',"workRate");
  10. columnOption.editor.options.min = rowData.minRate;
  11. columnOption.editor.options.max = rowData.maxRate;
  12. // 解决单击一行会自动设置最小值的问题
  13. if(rowData.workRate == 0)
  14. {
  15. rowData.workRate = "";
  16. }
  17. }

这样就可以每次输入前都已经设置好了输入范围,所以编辑器激活后已经完成初始化,所以编辑器的大小不会变化。故推荐使用这种方法。

JQuery easyUi datagrid 中 editor 动态设置最大值最小值的更多相关文章

  1. JQuery easyUi datagrid 中 自定义editor作为列表操作按钮列

    转自   http://blog.csdn.net/tianlincao/article/details/7494467 前言 JQuery easyUi datagrid 中 使用datagrid生 ...

  2. jquery easyui datagrid 无滚动条,datagrid 没垂直滚动条

    jquery easyui datagrid 无滚动条,datagrid 没垂直滚动条 ============================== 蕃薯耀 2018年2月6日 http://www. ...

  3. JQuery EasyUI DataGrid动态合并(标题)单元) 一

    JS: /** * EasyUI DataGrid根据字段动态合并单元格 * @param fldList 要合并table的id * @param fldList 要合并的列,用逗号分隔(例如:&q ...

  4. JQuery EasyUI DataGrid动态合并单元格

    /**        * EasyUI DataGrid根据字段动态合并单元格        * @param fldList 要合并table的id        * @param fldList ...

  5. jquery easyui datagrid使用参考

    jquery easyui datagrid使用参考   创建datagrid 在页面上添加一个div或table标签,然后用jquery获取这个标签,并初始化一个datagrid.代码如下: 页面上 ...

  6. Jquery easyui datagrid 导出Excel

    From:http://www.cnblogs.com/weiqt/articles/4022399.html datagrid的扩展方法,用于将当前的数据生成excel需要的内容. 1 <sc ...

  7. (转)扩展jquery easyui datagrid 之动态绑定列和数据

    本文转载自:http://blog.csdn.net/littlewolf766/article/details/7336550 easyui datagrid 不支持动态加载列,上次使用的方法是自己 ...

  8. 扩展jquery easyui datagrid编辑单元格

    扩展jquery easyui datagrid编辑单元格 1.随便聊聊 这段时间由于工作上的业务需求,对jquery easyui比较感兴趣,根据比较浅薄的js知识,对jquery easyui中的 ...

  9. jQuery EasyUI API 中文文档 - ComboGrid 组合表格

    jQuery EasyUI API 中文文档 - ComboGrid 组合表格,需要的朋友可以参考下. 扩展自 $.fn.combo.defaults 和 $.fn.datagrid.defaults ...

随机推荐

  1. ssh连接至Ubuntu服务器时,提示以下错误:REMOTE HOST IDENTIFICATION HAS CHANGED!

    今天在使用Ubuntu搭建自己的git仓库的时候,搭建完成后clone时出现以下错误 经过搜索问题出现原因的描述如下:第一次使用SSH连接时,会生成一个认证,储存在客户端的known_hosts中. ...

  2. globalalloc、malloc和new的区别

    简单来说: malloc是c分配内存的库函数,new是c++分配内存的操作符,而globalalloc是win32提供的分配内存的API malloc不能自动调用构造和析构函数,在c++中没什么实用价 ...

  3. 一步步用python制作游戏外挂【转】

    转自:http://www.cnblogs.com/xsmhero/archive/2013/01/03/2842973.html 玩过电脑游戏的同学对于外挂肯定不陌生,但是你在用外挂的时候有没有想过 ...

  4. Liquibase 了解

    Liquibase 是一个用于跟踪.管理和应用数据库变化的开源的数据库重构工具.它将所有数据库的变化(包括结构和数据)都保存在 XML 文件中,便于版本控制. Liquibase 具备如下特性: 不依 ...

  5. distinct和group by的性能比较

    distinct和group by的性能比较 当去重复的字段 的个数比较多的时候,group by 比distinct要快很多 当去重复的字符 的个数比较少的时候,distinct 比group by ...

  6. 【转】Eclipse的启动问题【an error has occurred see the log file】

    原文网址:http://coderlin.blog.51cto.com/7386328/1275215 方法1: 今天打开Eclipse的时候出现来了一个问题,导致了Eclipse打不开 错误的提示是 ...

  7. spring容器启动

    1 主要类 ContextLoaderListener:注册在web.xml中,web应用启动时,会创建它,并回调它的initWebApplicationContext()方法,从而创建并启动spri ...

  8. Fiddler+Firefox

    配置置代理了,发现还是不好用!无法抓包: 配置就是在firefox的“选项”,拉到最下面,就能够看到“网络代理”,点进去:手动代理里面输入Fiddler的代理信息(默认127.0.0.1:8888) ...

  9. ASP.NET-自定义HttpModule与HttpHandler介绍

    ASP.NET对请求处理的过程:当请求一个*.aspx文件的时候,这个请求会被inetinfo.exe进程截获,它判断文件的后缀(aspx)之后,将这个请求转交给 ASPNET_ISAPI.dll,A ...

  10. 老齐python-基础8(函数)

    1.函数基本概念 2.理解函数 python中一个函数,就是一种映射关系 3.定义函数 #!/usr/bin/env python #coding:utf-8 def add_function(a,b ...