我正在使用OData和Kendo UI获取数据,扩展到关系,并在嵌套的Kendo网格中呈现它们。因为似乎所有这些数据都是一个数据源的一部分,所以只要数据中的任何地方发生任何变化,就会重新生成整个网格。
我reproduced the problem using Northwind data here。
我有一个主网格:
$("#grid").kendoGrid({
dataSource: {
type: "odata",
transport: {
read: "http://demos.telerik.com/kendo-ui/service/Northwind.svc/Employees?$expand=Orders"
},
pageSize: 6,
serverPaging: true,
serverSorting: true
},
height: 550,
sortable: true,
pageable: false,
editable: "inline",
detailInit: detailInit});
和带有添加按钮的详细网格。
function detailInit(e) {
$("<div/>").appendTo(e.detailCell).kendoGrid({
dataSource: {
data: e.data.Orders.results,
schema: { ... }
},
editable: true,
columns: [ ... ],
toolbar: [{ name: "create", text: "Add Order" }]
});
}
如果您展开其中一行,然后点击添加订单,展开的行会立即折叠。我把它归结为正在重新生成的整个网格。
在Telerik's example这方便不会发生,a)因为它们不是可编辑的网格而b)因为它们是单独的端点,因此是单独的数据源。
我可以强制它只对数据网格进行数据绑定并防止这种情况发生吗?