2

虽然我以前见过各种版本的此类错误,但我还没有看到涉及 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 方法时,都会返回一个错误,指出“网格”未定义。将新项目添加到数据库后,如何访问网格属性以刷新它?

任何帮助将不胜感激。

4

1 回答 1

3

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

看法:

div data-bind="kendoGrid: myGrid"> /div

视图模型:

var myGridObservable = ko.observable();

var myGrid = { 小部件:myGridObservable,数据:空,数据源:{...

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

myGrid().dataSource.read();

于 2013-12-16T23:57:10.343 回答