这是我当前的网格和detailExpand / Databind。您将看到我尝试获取uid,然后在触发数据绑定后展开该行。 expandedRowUid控制台日志未定义。有人可以帮我正确获取uid或提供替代解决方案,以便一旦数据绑定被触发,细节网格不会崩溃或在数据绑定后再次展开。
function teacherHierarchyGrid() {
$("#teacherGrid").kendoGrid({
detailInit: detailInit,
selectable: true,
dataBound: function () {
console.log("Bind occured")
this.expandRow($('tr[data-uid=' + expandedRowUid + ']'));
},
detailExpand: function (e)
expandedRowUid = e.masterRow.data('uid');
console.log(expandedRowUid)
},
})
}
**编辑**新代码仍无效
var expandedRow;
function teacherHierarchyGrid() {
$("#teacherGrid").kendoGrid({
detailInit: detailInit,
selectable: true,
autoBind: false,
dataBound: function(e){
if (expandedRow) {
console.log(expandedRow);
e.sender.expandRow($('tr[data-uid=' + expandedRow + ']'));
}
},
detailExpand: function (e) {
expandedRow = e.sender.dataItem(e.masterRow).uid;
},
})
}
答案 0 :(得分:0)
首先,由于detailExpand函数中缺少{},它可能会记录未定义:
detailExpand: function (e) {
expandedRowUid = e.masterRow.data('uid');
console.log(expandedRowUid);
}
在dataBound函数中,您在console.log("Bind occured")
第三个可能是在重新创建行之后与该行关联的uid不同:在数据绑定之后,同一行可能具有不同的uid,因为它是由窗口小部件生成的。尝试引用行来扩展,通过dataItem Id。