使用OData,Popups和Durandal.js刷新KendoUI网格

时间:2013-12-04 21:31:40

标签: kendo-ui odata kendo-grid asp.net-mvc-5 durandal-2.0

虽然之前我已经看到过这种错误的各种版本,但我还没有看到一个涉及Durandal的版本,这是我认为其中一些问题的来源。

我有一个KendoUI网格,其中显示了一些费用,我使用Durandal消息框添加新费用,并且想法是在提交新费用时,网格应该刷新。

现在,有几个人提到了以下“解决方案”:

var grid = $("#grid").data("kendoGrid");
grid.dataSource.read();

不幸的是,这似乎不起作用。当我使用弹出窗口时,因为我正在使用Durandal,因为Durandal的承诺方法,我的代码刷新网格仍然在网格所在的页面内。

app.showDialog('viewmodels/empresas/egreso/addEgreso').then(function () {
    //the method called that uses the code above to attempt to refresh the grid
    refreshGrid();
});

每次到达refreshGrid方法时,都会返回错误,说明未定义“网格”。在将新项添加到数据库后,如何到达grid属性以刷新它?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

我建议将网格分配给网格属性对象中的observable:

观点:

  

div data-bind =“kendoGrid:myGrid”> /格

viewmodel:

  

var myGridObservable = ko.observable();

     
    

var myGrid = {             widget:myGridObservable,              数据:null,              dataSource:{...

  

然后将myGridObservable传递给您的视图,您可以执行以下操作:

  

myGrid()dataSource.read();