自动触发剑道细节网格中的更改事件



我有一个类似于telerik演示的有角度的剑道网格。

主电网:

$scope.mainGridOptions = {
        dataSource: {
            transport: {
                read: queryurl
            },
            pageSize: 5,
        },
        sortable: true,
        pageable: true,
        detailTemplate: kendo.template($("#template").html()),
        dataBound: function () {
            this.expandRow(this.tbody.find("tr.k-master-row").first());         
        }
    }

细节网格:

$scope.detailGridOptions = function (item) {
        return {
            dataSource: {
                transport: {
                    read: detailsUrl
                },
            },
            change: $scope.showDocument,
            selectable: "row",
            dataBound: function (e) {
                var row = e.sender.tbody.find("tr:first");
                row.addClass("k-state-selected"); 
                row.trigger("change") //doesnt work!
            }
        }
    }

当用户单击详细信息网格中的一行时,文档将在jquery对话框中呈现。这一切都如预期的那样。当轴网加载时,第一个主行将展开。现在,我需要自动触发detailsgrid中第一行的更改事件,以便在应用程序加载时自动显示第一个条目的第一个文档。

当我能够突出显示第一个细节时,我认为我可以触发这样的更改事件:

row.trigger("change")
,但这似乎不起作用。

任何想法都非常感谢!

尝试使用网格的select方法来选择行,而不是手动添加"k-state-selected"类。它将自动为您触发change事件。Js例如。

(function() {
  'use strict';
  var grid = $('#grid').kendoGrid({
    dataSource: [
      { name: 'Brett', age: 37 },
      { name: 'Susan', age: 38 }
    ],
    selectable: 'row',
    change: function (e) {
      console.log('change triggered');
    },
    dataBound: function (e) {
      var row = this.tbody.find('tr:first');
      this.select(row);
    }
  }).data('kendoGrid');
})();

最新更新