jquery easyUI的datagrid不重复新增和多选删除实现

一、定义全局的arraylist

//标记销售详情列表里的内容
var proIds=new Array();

二、往datagrid里面增加某条或多条数据时,新增这些数据的特征(自定义key)到ArrayList里面保存,数据直接插入datagrid

var selectRows = $('#pro_list').datagrid("getChecked");
for (var i = 0; i < selectRows.length; i++) {
var rowData = selectRows[i].productId;

//自定义key
var key = rowData.id + "-" + selectRows[i].batchNum + "-" + selectRows[i].sterileBatch + "-" + selectRows[i].productionDate + "-" + selectRows[i].validity+ "-" + selectRows[i].inventoryQuantity;

//判断key是否存在,即可知datagrid里面有没有此条数据
if($.inArray(key, proIds) > -1){
continue;
}

//如果没有,key放入arraylist,数据放入datagrid
proIds.push(key);

$('#salesdetailList').datagrid("insertRow", {
row:rowData 
});
}

//不重复插入已做完

三、删除先删ArrayList,再去掉datagrid中的数据,部分代码如下:

// 1、获取已勾选的行
var rowDatas = $('#salesdetailList').datagrid('getChecked');
if (rowDatas==undefined || rowDatas.length==0) {
alertx("请选择要删除的数据记录!");
return;
}
// 2、对已勾选的行进行遍历删除
if (rowDatas.length > 0)
{
var checkedRowLength = rowDatas.length;
for (var i = 0; i < checkedRowLength; i++)
{
var checkedRow = rowDatas[0];
//3、删除proIds标记
proIds.splice($.inArray(checkedRow.key, proIds), 1);
//4、删除datagrid里面的数据
var checkedRowIndex = $('#salesdetailList').datagrid('getRowIndex', checkedRow);
$('#salesdetailList').datagrid('deleteRow', checkedRowIndex);
}
}

posted @ 2016-04-16 15:48  philonic  阅读(585)  评论(0)    收藏  举报