??首先給需要的列添加復(fù)選框;
{ field: 'CHECKED_TASK_PROGRESS', checkbox: true, title: '', width: 90, align: 'left' },
??看到的效果就是這樣鸽疾;
????我這里的展開(kāi)子級(jí)是通過(guò)異步加載的;
//點(diǎn)擊父節(jié)點(diǎn)兼砖,異步加載數(shù)據(jù)
onBeforeExpand: function (row) {
if (row) {
var parentId = row.ORDER_ID;//父節(jié)點(diǎn)ID
var url = "Ajax/Ajax.ashx?OperateType=GetChildren&parent_id=" + parentId;
$('#ErpTreeGird').treegrid("options").url = url;
}
},
??但是這里我只需要選擇父節(jié)點(diǎn)的復(fù)選框蔚润,不需要選擇子級(jí)磅氨;所以我就要想辦法吧子級(jí)的復(fù)選框給隱藏掉;
// 加載數(shù)據(jù)完成
onLoadSuccess: function (row, data) {
var rowData = data;
// 子級(jí)復(fù)選框不需要選擇,這里做復(fù)選框刪除
if (rowData[0] && rowData[0].PARENT_ID && rowData[0].PARENT_ID != "0") {
// 取出加載的子級(jí)的父節(jié)點(diǎn)
var p = $("#ErpTreeGird").treegrid("getParent", rowData[0].ORDER_ID);
if (p) {
var pORDER_ID = p.ORDER_ID;
// 記錄父節(jié)點(diǎn)索引
var pIndex;
var getData = $("#ErpTreeGird").treegrid("getData");
$.each(getData, function (idx, val) {//遍歷JSON
if (val.ORDER_ID == pORDER_ID) {
pIndex = idx;
return;
}
});
//console.log("pIndex:" + pIndex)
// 循環(huán)子級(jí) 刪除復(fù)選框
let flagNum = 0;
for (let i = 0; i < rowData.length; i++) {
let item = rowData[i];
if (item.PARENT_ID && item.PARENT_ID != "0") {
$(".datagrid-cell-check input[type='checkbox']")[i - flagNum + pIndex + 1]
.remove();
flagNum++;
};
}
}
}
},
??這里的onLoadSuccess
是每次加載成功后的事件嫡纠,當(dāng)展開(kāi)父級(jí)異步加載時(shí)烦租,data
參數(shù)就是子級(jí)數(shù)據(jù)。
??通過(guò)getParent
方法得到父級(jí)節(jié)點(diǎn)除盏,然后得到父級(jí)的索引叉橱,注意,這里我本來(lái)是想通過(guò)這個(gè)方法getRowIndex(row)
獲得索引者蠕,但是這個(gè)方法只有datagrid支持窃祝,treegrid好像不支持。
??得到父級(jí)索引踱侣,就能找到展開(kāi)的子級(jí)索引了粪小,然后循環(huán)刪除即可。
??結(jié)果如下:
??