我很抱歉提出这个问题,因为看起来答案应该是显而易见的,但我找不到。
我正在对详细网格进行创建操作后处理“完成”事件,因为我希望在插入后刷新网格。但我找不到明智的方法。这就是我所做的。我正在用HTML和JavaScript完成所有这些工作。初始化详细信息网格时,我“命名:它'pane'ridgrid'后缀为主记录的密钥。如下所示:
function detailInit(e) {
if (e.data.Id != '') { // Must be a Create for Lite so don't create a grid
$("<div id='panegrid" + e.data.Id + "' />").appendTo(e.detailCell).kendoGrid({
dataSource: {
然后当创建完成时,我发现这样的网格:
complete: function (e) {
var selector = '#panegrid' + $.parseJSON(e.responseText).IGUnit_Id;
$(selector).data('kendoGrid').dataSource.read();
}
这是有效的(IGUnit_Id是Master Grid的主键),但是这样做似乎是不对的。当然,有一些“正确的方法”可以直接从完整的事件中找到网格,而无需使用选择器。
感谢您的帮助并为提出这样一个愚蠢的问题而道歉。
答案 0 :(得分:0)
如果要在创建网格时保存对网格的引用,只需为其指定一个变量并将.data('kendoGrid')
附加到创建表达式,例如
var myGrid = $("<div id='panegrid" + e.data.Id + "' />").appendTo(e.detailCell).kendoGrid({
dataSource: {
// etc...
}
}).data('kendoGrid');
之后
myGrid.dataSource.read();
当然,您不希望它是一个局部变量,您需要将其添加为其他代码中可见内容的属性,但我将该练习留给您。