如何在创建完成事件后找到Kendo UI detailGrid

时间:2013-06-15 21:15:48

标签: events grid kendo-ui

我很抱歉提出这个问题,因为看起来答案应该是显而易见的,但我找不到。

我正在对详细网格进行创建操作后处理“完成”事件,因为我希望在插入后刷新网格。但我找不到明智的方法。这就是我所做的。我正在用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的主键),但是这样做似乎是不对的。当然,有一些“正确的方法”可以直接从完整的事件中找到网格,而无需使用选择器。

感谢您的帮助并为提出这样一个愚蠢的问题而道歉。

1 个答案:

答案 0 :(得分:0)

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

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

之后

myGrid.dataSource.read();

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