Json 刷新Dojo网格中显示的数据

Json 刷新Dojo网格中显示的数据,json,datagrid,dojo,Json,Datagrid,Dojo,我有一个Dojo网格。每一行都有一个到公式的链接,可以在其中更改数据。现在,当我单击save and close(在表单中)时,我希望网格重新加载显示的数据。到目前为止,我已经设法重新加载了数据,但我总是跳回网格的开头。但是,例如,如果我在表的末尾,我只想重新加载最后几个条目。 我的网格连接到一个JSONRest存储,所以基本上我应该知道现在显示的范围。如何获取范围?如果您的网格由存储支持,只需将更改的对象“放入”存储即可。您正在使用的JsonRest存储将通过PUT请求将更改发送回服务器,网格

我有一个Dojo网格。每一行都有一个到公式的链接,可以在其中更改数据。现在,当我单击save and close(在表单中)时,我希望网格重新加载显示的数据。到目前为止,我已经设法重新加载了数据,但我总是跳回网格的开头。但是,例如,如果我在表的末尾,我只想重新加载最后几个条目。

我的网格连接到一个JSONRest存储,所以基本上我应该知道现在显示的范围。如何获取范围?

如果您的网格由存储支持,只需将更改的对象“放入”存储即可。您正在使用的JsonRest存储将通过PUT请求将更改发送回服务器,网格将获取更改并更新相应的项

在表单中按save时,需要创建表单数据的json表示(与网格中使用的数据相匹配),并将其放入存储:

require(["dojo/dom-form", ... ], function(domForm, ...) {
    ...
    var updatedItem = domForm.toObject("yourFormId");
    yourGridStore.put(updatedItem).then(function() {
        console.log("put was successful");
    });
    ...
}

我设法解决了这个问题,没有任何麻烦。代码如下:

grid._lastScrollTop=grid.scrollTop;
grid._refresh();

这就是我找到答案的链接。这是答案6。

听起来是个好主意,但对我不起作用。我们现在更改了JS框架,我们从列表开始。所以,到目前为止,我们还没有改变任何公式,而且这不会很快发生在任何地方。因此,公式将在弹出窗口中打开,并将其数据发送到服务器上的脚本。我知道,我可以将一些数据传递给开场白,但这不会有什么帮助,因为我无法判断这个特定项目位于哪个位置。或者,我有办法吗?你不必处理网格中的位置。您只需使用更改的项目更新存储。