0

我有一个包含三列的 ExtJs 网格(第三列是状态)。前两列被加载以存储并填充到网格中。第三列取决于前两列。我无法为第三列创建新商店。

是否可以在渲染器中进行 ajax 调用以填充第三列?我知道渲染器是同步的。有什么办法可以做到这一点?任何例子都受到高度赞赏。

function renderStatus(value) {
    var statusAjaxOnSuccessCallback = function (serverStatus) {
        //debugger;           

        grid.getStore().each(function (rec) {
           rec.set('Status', 'After Ajax');               
        });            
    };
    callAjax(statusAjaxOnSuccessCallback);
    //return 'BeforeAjax';
}
4

2 回答 2

1

只需以正常方式配置网格,将第三个网格列绑定到存储中第三列的 dataIndex。

每当您为商店中的行设置第三列的值时,您可以通过 AJAX 成功处理程序执行此操作,网格将自动更新并显示该新值。

于 2015-03-09T17:53:47.260 回答
0

这是我解决问题的方法。

  1. 订阅网格商店的加载事件。
  2. 在这种情况下,触发 ajax 查询以获取第三列的值。
  3. 在 ajax 查询的 onsuccess 事件中,更新网格的存储并自动呈现值。
  4. 将网格的 viewconfig 的 markDirty 设置为 false,以便该列不显示脏标记。
于 2015-03-13T09:42:35.940 回答