其代码为
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行会全部选中,给需要的人
总结,国外的牛人也很多,我还真的只是个码农