0

很抱歉问这个问题,因为看起来答案应该很明显,但我找不到。

我正在处理详细信息网格上的创建操作后的“完成”事件,因为我希望在插入后刷新网格。但是我找不到一个明智的方法。这是我所做的。我用 HTML 和 JavaScript 做这一切。初始化详细网格时,我“命名:它'panegrid'后缀为主记录的键。如下所示:

   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 是主网格的主键),但这样做似乎并不正确。当然,有一些“正确的方法”可以直接从完整事件中找到网格,而无需使用选择器。

感谢您的帮助,并为提出如此愚蠢的问题而道歉。

4

1 回答 1

0

如果您想在创建网格时保存对网格的引用,只需为其分配一个变量并附.data('kendoGrid')加到您的创建表达式,例如

var myGrid = $("<div id='panegrid" + e.data.Id + "' />").appendTo(e.detailCell).kendoGrid({
    dataSource: {
        // etc...
    }
}).data('kendoGrid');

然后稍后

myGrid.dataSource.read();

当然,您不希望它成为局部变量,您需要将其添加为其他代码可见的属性,但我将这个练习留给您。

于 2013-07-18T02:29:48.990 回答