当前位置: 代码迷 >> Web前端 >> Jquery easyui中datagrid使用过程中getSelections出现的有关问题
  详细解决方案

Jquery easyui中datagrid使用过程中getSelections出现的有关问题

热度:499   发布时间:2013-08-29 10:33:02.0
Jquery easyui中datagrid使用过程中getSelections出现的问题

今天在用datagrid时偶然发现一个问题,问题如下:

在使用 var rows = $("#datagride").datagrid('getSelections')的时候,获取选中的行数,在前台页面无论选中几行,获取rows.length的结果均为1,于是查看了一下easyui中jquery.easyui.min.js中的源码。源码如下:

?

function _4bb(_4bc){

var opts=$.data(_4bc,"datagrid").options;

var data=$.data(_4bc,"datagrid").data;

if(opts.idField){

return $.data(_4bc,"datagrid").selectedRows;

}else{

var rows=[];

opts.finder.getTr(_4bc,"","selected",2).each(function(){

var _4bd=parseInt($(this).attr("datagrid-row-index"));

rows.push(data.rows[_4bd]);

});

return rows;

}

};

?

错误原因是:我设置了idField属性,但是没有给唯一性字段设置唯一值,导致获取的值一直为1。修改后代码如图所示:



?

?

最后终结发现:如果在datagrid中设置了idField:‘id'时,在返回数据的时候要有id字段,并且id要唯一;如果不设置idField,会正常获取选中的行数。

  相关解决方案