EasyUI 1.3之前DataGrid中动态选中、获取Checkbox

时间:2023-03-10 00:07:20
EasyUI 1.3之前DataGrid中动态选中、获取Checkbox

这几天做项目,由于项目中用到的EasyUI版本过低,不能使用自带操作DataGrid中CheckBox的方法。

所以自己写了一个临时方案:

根据ID集合选中所属行的CheckBox:

 data={1,2,3,4,5,6};//需要选中项的ID
var funId = data.split(',');
var iden = []; //记录行标记(ProjectFunctionId等于指定值的行)
var x = 0; //自增行标记
for (var i = 0; i < funId.length; i++) {//遍历功能ID
$("table").find("tr").each(function () {//遍历TR
$(this).find("td").each(function () {//遍历TD
if ($(this).attr("field") == "ProjectFunctionId") {//查找field属性等于ProjectFunctionId的集合
$(this).find("div").each(function () {//在集合中查找DIV
if ($(this).text() == funId[i]) {//div text属性值等于功能ID
iden.push(x); //记录行标记
return true;
}
});
}
});
x++; //行标记自增
});
}
x = 0;
for (var i = 0; i < funId.length; i++) {
$("table").find("tr").each(function () {
$(this).find("td").each(function () {
if ($(this).attr("field") == "check") {
if (iden[0] == x) {
$(this).find("div:first").each(function () {
$(this).find(":checkbox").each(function () {
$(this).attr("checked", true); //为checkbox添加checked属性
iden.splice(0, 1); //移除下标为0的行标记
return true;
});
});
}
}
});
x++;
});
}

获取CheckBox选中行的某列值:

  //获取所有选中checkbox的value
var functionIds = "";
var iden = [];
var x = 0;
$("table").find("tr").each(function () {
$(this).find("td").each(function () {
if ($(this).attr("field") == "check") {
$(this).find("div:first").each(function () {
$(this).find(":checkbox").each(function () {
if ($(this).attr("checked") == true) {
iden.push(x);
return true;
}
});
});
}
});
x++;
});
x = 0;
$("table").find("tr").each(function () {
$(this).find("td").each(function () {
if ($(this).attr("field") == "ProjectFunctionId") {
if (iden[0] == x) {
$(this).find("div:first").each(function () {
functionIds += $(this).text() + ",";
iden.splice(0, 1);
return true;
});
}
}
});
x++;
});

希望对大家有所帮助,不过这只是临时解决方案,有更好的方案以后会放上来。