我已经尝试了几个关于我的问题的几个提示和技巧 - 我无法完成。
我想用Kendo UI Grid替换一个trNgGrid。 trNgGrid似乎有点不同。它从$ scope变量中获取数据,我调用$ scope.items。只要需要刷新数据(筛选,分页,排序事件...),网格就会调用一个函数。 里面函数我打电话给我的SharePoint服务来获取项目,然后用sharepoint列表中的新数据覆盖$ scope.items。
var getItemsFromSPService = function() {
SP.SOD.executeFunc('sp.js', 'SP.ClientContext', function() {
SPService.loadItems($scope.gridParams).then(function (result) {
$scope.items = result.items;
});
});
};
网格刷新。可悲的是,没有休息/肥皂Web服务我可以消费 - 我使用标准的Sharepoint客户端上下文方法来获取数据。由于那个共享点SP.SOD.stuff,我还没有找到解决方案返回项目从我的功能。我只是能够用数据填充变量或调用另一个函数并将数据发送给它。这当然都是异步的。
我试图在Kendo UI Grid指令中设置$ scope.items作为数据源 - 当变量被更新时它不刷新。我试过$ scope.grid.refresh - 什么都没有。我尝试从剑道观察数组 - 没有运气。
我觉得可能是使用网格选项的方式:
dataSource: {
serverFiltering: true,
transport: {
read: function(options) {
options.success(....
,但我不能明白这一点。
- 因此,我可以用新数据刷新$ scope.items,或者我的函数可以调用任何其他函数并将数据包含为参数 - 网格也需要刷新。我怎么能告诉它“嘿,$ scope.items得到更新 - 显示它!”?
- 我需要IE8
- 支持我需要服务器端排序,过滤,分页 - 电网需要触发事件,使我的功能,可以刷新数据
是有任何解决方案?这太疯狂了,那么“微不足道”的东西似乎非常棘手:O
非常感谢你!