【发布时间】:2025-11-23 23:00:01
【问题描述】:
我已经尝试了所有方法来让 kendo-gird 在 Angular 环境中进行刷新,而不必导致页面刷新:
我的控制器中有以下代码:
$scope.$on('import-grid-loaded', function (event, args) {
alert('hello');
portabilityService.portList($
$scope.importGridOptions = {
dataSource:
{
data: new kendo.data.ObservableArray($scope.portDetails),
pageSize: 10
},
sortable: {
mode: "multiple",
allowUnsort: true
},
pageable: {
refresh: true
},
dataBound: function () {
this.expandRow(this.tbody.find("tr.k-master-row").first());
},
detailTemplate: $('#Details').html(),
columns: [
{
field: "FileName",
title: "File Name",
width: "120px"
},
{
field: "RequestedByUseraname",
title: "Imported By",
width: "120px"
},
{
field: "CreatedOn",
title: "Imported On",
width: "120px",
type: "date",
format: "{0:dd MMM yyyy} at {0:h:mm tt }"
},
{
field: "StateString",
title: "State",
width: "120px",
encoded: true,
template: '#=GetFaClass(data.StateString)#'
}
]
};
});
});
我的 HTML 看起来像
<div id="importGrid"ng-if="portDetails" class="row table-condensed table-frame grid" kendo-grid k-options={{importGridOptions}} k-rebind={{portDetails}}></div>
- 此代码确保 $scope.PortDetails 在第一次加载之前确实存在
- 在第一次加载时也成功加载了网格
- 现在,我希望在更新 Portdetails 时刷新网格。这就是为什么我广播一个事件,以便它在我的控制器中重新运行上面的代码,我希望它会重新绑定网格。但什么也没发生
我也尝试过其他方式,比如 JQuery
$('#importGrid').data('kendoGrid').dataSource.data(data);
$('#importGrid').data('kendoGrid').dataSource.read();
$('#importGrid').data('kendoGrid').refresh();
这也行不通。更新数据源后,有什么简单的方法可以在 Angular 中刷新剑道网格?
【问题讨论】:
标签: jquery angularjs kendo-ui kendo-grid