$("#infos").datagrid({ url:'${ctx}/info/getInfos', fit:true, idField:'infoTitle', pageSize:15, pageList:[15,30,45], fitColumns:true, pagination:true, columns:[[ {checkbox:true}, {field:'infoTitle',title:'信息名称',width:120}, {field:'infoContent',title:'信息内容',width:120}, {field:'infoType',title:'信息类型',width:50}, {field:'infoCreater',title:'创建者',width:50,align:'center'}, {field:'infoCreateTime',title:'创建时间',width:80,align:'center'} ]] });
使用下面方法获取多条记录时,每次都只能获得第一条:
var rs = $('#infos').datagrid('getSelections'); if (rs && rs.length >= 1){ alert(rs.length); }
原因分析:
datagrid 中的 idField 属性,必须对应后台的实体属性字段,而且该字段必须确保唯一性,一般用id标识,否则就无法获取在datagrid中选择的多条记录。
解决方法:
$("#infos").datagrid({ url:'${ctx}/info/getInfos', fit:true, idField:'id', pageSize:15, pageList:[15,30,45], fitColumns:true, pagination:true, columns:[[ {checkbox:true}, {field:'infoTitle',title:'信息名称',width:120}, {field:'infoContent',title:'信息内容',width:120}, {field:'infoType',title:'信息类型',width:50}, {field:'infoCreater',title:'创建者',width:50,align:'center'}, {field:'infoCreateTime',title:'创建时间',width:80,align:'center'} ]] });