我有一个类似于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');
})();