我有一个使用数据源填充的kendo ui网格,其中包含少于40个项目。每个项目有大约10个字段,其中一个是包含不超过3个项目的数组。网格有一个详细信息模板,其中还包含一个网格,该网格由主记录中的数组字段填充。
当我调用dataSource.remove(item)时,删除项目大约需要10秒。
这是数据源:
var ds = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
url: 'some service url',
type: 'GET'
}).success(function (data) {
options.success(data);
})
},
},
sort: { field: 'Ordinal', dir: 'asc' },
schema: {
model: {
id: 'ID',
fields: {
Name: { editable: false },
Ordinal: { editable: false }
}
}
}
})

这是我的网格:
<div id="grd" data-role="grid"
data-auto-bind="true"
data-editable="true"
data-selectable="false"
data-resizable="true"
data-sortable="true"
data-scrollable="true"
data-detail-template="fTemplate"
data-columns="[
{ field: 'Name', title: 'Name' },
{ template: kendo.template($('#tStatus').html()), title: 'Status', width: '150px' },
{ template: kendo.template($('#tError').html()), title: 'Continue On Error', width: '150px' },
{ field: 'Ordinal', title: 'Order', width: '75px' }
]"
data-bind="source: ds, events: { detailInit: initializeDetails }" style="height: 300px;">
</div>
&#13;
我正在努力理解为什么性能缓慢。我之前使用过删除方法,从来没有遇到过问题。
非常感谢任何建议。
感谢。
答案 0 :(得分:1)
经过几个小时的游戏和测试后,我发现了性能缓慢的原因。
问题是我的网格有2个模板列,一个是下拉列表,另一个是复选框。如果我删除它们,一切都很好。我认为性能打击来自于网格必须渲染2个模板并启动并绑定每行的小部件。
在这种情况下,有没有办法改善效果?