treeGrid组件没有设置级联勾选,子选中后再收缩在父上看不是出是否有子选中,可以通过代码控制如果有子选择了可以设置父的样式
如下:案例中指是设置了一级的,没有遍历多级的,多级的就需要自己实现,主要就是定义一个css,然后把需要的行用添加样式,然后在子勾选去掉的时候判断当前的父下没有选中的子了把样式移除
先在css中定义样式
.musRow{
background: #FFCCFF !important;
}
在grid的RowChecked事件中
Model.prototype.treeGridRowChecked = function(event) {
var fParent = event.row.val("fParentID");//获取当前行的父ID
var data = this.comp("treeData");
var checkRows = event.source.getCheckedRows();//获取当前多选的行
if (fParent !== undefined) {
var parentRow = event.source.getRowByID(fParent);//根据父ID获取父的行
if (event.checked) {//判断是否是选中
if (!$(parentRow).hasClass("musRow")) {//如果父的行上没有选中的class就加上这class
$(parentRow).addClass("musRow");
}
} else {//取消选中
var fParents = [];
for ( var rows in checkRows) {
fParents.push(data.getValue("fParentID",checkRows[rows]));//遍历当前多选的行,获取这些行的父ID并放到fParents中
}
if($.inArray(fParent, fParents) == -1){//判断fParents中是否有当前取消选中行的父ID,如果没有移除添加的行样式
$(parentRow).removeClass("musRow");
}
}
}
};
评一波