关于jqGrid的multiselect,multiboxonly,multikey

         今天又解决了个大难题,不知道用jqGrid的朋友遇到过没有,当我们设置multiselect为true时,选择任何的单元格,都会选中该行。万一设置了单元格编辑功能,岂不是每次都要取消选中的行?由于查看国内的网站,发现仅仅都是介绍了jqGrid的multiselect,multiboxonly,multikey的用法,并没有一些问题的解决方法,后来终于在国外网站上发现解决该问题的方法(http://stackoverflow.com/questions/7627512/jqgrid-multiselect-box),http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridWithMultiselection.htm是其效果

其代码为

beforeSelectRow: function (rowid, e) {
    var $myGrid = $(this),
        i = $.jgrid.getCellIndex($(e.target).closest('td')[0]),
        cm = $myGrid.jqGrid('getGridParam', 'colModel');
    return (cm[i].name === 'cb');
}

如果不需要复选框可以再jqgrid加载完的事件中加$("#mygrid").jqGrid('hideCol','cb');

另外我在国外网站上,已介绍了multiboxonly在3.6以后的版本中已没有介绍的那种功能,在3.4的版本中是能实现的(其介绍的链接为http://www.trirand.com/blog/?page_id=393/bugs/multiboxonly-property-bug/),所以3.6以后要实现所介绍的功能只能用以上的方法实现了

 

 

由于我的项目需要用到快捷键选取多行,经过设置multiselect:true,multikey:‘ctrlKey’,发现不能通过ctrl多行选择,后来发现,是由于我有上面贴的js,所以选择不了。删除上面那段js,能正常选择行,但同时也发现了另一个问题,选择checkbox后无效,又是个纠结的问题,只能通过谷歌的关键字去国外网站搜索,最后在https://github.com/gregorymostizky/jqGrid/commit/48121b4a4a31d2654e4272cdab317c067a9dc62e#diff-0中修改jqgrid的源代码解决了这个问题

 

特此分享以上问题的解决方法

另保存http://www.trirand.com/blog/?page_id=393/help/multiselect-with-shift-to-emulate-the-same-behaviour-as-in-the-file-explorer/,此方案用于快捷键选择多行,按住快捷键,选择第一行,再选择第10行,那中间8行会全部选中,给需要的人

 总结,国外的牛人也很多,我还真的只是个码农

 


 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值