我正在尝试使用数据填充我的网格(由angular指令创建),但它没有填充。
这是我的网格声明:
<div id="dayTypesGrid" kendo-grid k-options='dayTypesGridOptions'></div>
这是我的角度控制器的代码:
$scope.dayTypesGridOptions = {
schema: {
model: {
id: "description",
fields: {
description: { editable: false, nullable: false },
numberOfDays: { type: "number", validation: { required: true, min: 0} }
}
}
},
columns: [{
field: "description",
title: "Day Type"
}, {
field: "numberOfDays",
title: "Number of Days"
}]
};
到目前为止一切顺利。网格被实例化,我看到两列。我的角度控制器执行我的数据获取调用,并将结果存储在数组$ scope.viewModel.dayTypes中。 使用浏览器开发工具,我可以看到$ scope.viewModel.dayTypes确实包含7条记录的数组。 我现在想在网格中显示这7条记录,我按如下方式显示:
var ds = new kendo.data.DataSource({data:$ scope.viewModel.dayTypes}); $('#dayTypesGrid')。data('kendoGrid')。dataSource = ds;
在最后一行代码之后,我的网格仍然是空的。使用浏览器开发工具,我看到ds.data.length为零。
我错过了什么?
答案 0 :(得分:1)
您正在寻找的是setDataSource方法:
$('#dayTypesGrid').data('kendoGrid').setDataSource(ds);
答案 1 :(得分:0)
以下是我在项目中的表现方式,这对我有用。您的里程可能会有所不同,因为您使用的是数据而不是传输URL,但我注意到您的网格配置结构与我的有点不同。例如,我在创建数据源时定义了架构:
var datasource = new kendo.data.DataSource({
transport: {
read: {
url: "url/to/my/service",
dataType: "json"
}
},
schema: {
data: "results"
}
};
var gridConfig: {
dataSource: dataSource,
rowTemplate: $templateCache.get("modules/reports/row.html"),
height: 500,
scrollable: true,
groupable: true,
filterable: true,
pageable: true,
reorderable: true,
sortable: true,
resizable: true,
"columns": [
{
"field": "status",
"title": "Status",
"width": 200
},
{
"field": "actions",
"title": "Actions",
"width": 200
}
]
}
};