序言
EasyUI中的DataGrid功能很强大,提供了非常丰富的属性、事件等方法等
EasyUI Datagrid 数据网格
但是有些功能使用不方便。例如提交表格所有数据,且后台更具数据的是否选中做区别处理
由于个人才疏学浅,采取曲线救国策略解决问题
解决处理
表格代码如下
('#dg').datagrid({
url:'',
singleSelect:true,
checkOnSelect:false,
selectOnCheck:false,
columns:[[
{field:'activeFlag',type:'checkbox' title:'',width:100},
{field:'flowCode',title:'流程序号',width:100},
{field:'flowDesc',title:'流程描述',width:100,align:'right'}
]]
});
获取数据
function GetData(){
var $grid = $('#gridPhlFlow');
var gridRows = $grid.datagrid('getRows'); //获取所有数据
var chkRows=$grid.datagrid('getChecked'); //获取所有被选中的行
var CodeArr=[];
$.each(chkRows,function(i,data){
CodeArr["Code"+data.flowCode]=""
})
var dataArr = [];
for (var i = 0; i < gridRows.length; i++) {
var rowData = gridRows[i];
var activeFlag="";
var flowCode=rowData.flowCode;
if(CodeArr["Code"+flowCode]==undefined){
activeFlag="0"
}else{
activeFlag="1"
}
var iJson = {
flowCode: flowCode,
activeFlag: activeFlag
};
dataArr.push(iJson);
}
return JSON.stringify(dataArr)
}
首先,获取所有check数据行,将行的唯一标识flowCode创建对象。flowCode在所有数据不要重复就可以,也可以是其他字段
其次,遍历所有数据,对比dataArr 中是否有此数据
虽然办法很笨,但是解决问题,有好多的办法可以留言分享