0

我有一个带有 RowEditing 插件的网格,它的 Store 的 AjaxProxy 使用 JsonWriter 将更新写回服务器。

发生更新时,我需要触发一些代码来更新另一个组件,这需要单独访问服务器。

这必须在 JsonWriter 返回触发,因为它取决于服务器上正在更新的数据。所以,我不能监听商店的“更新”事件,因为它发生在 Ajax 调用之前(即使禁用了批处理)。

我尝试为“endupdate”设置一个监听器,如下所示,但在发出 AJAX 请求之前再次触发:

        var ds = new Ext.data.Store({
            model:      modelname,
            autoSync:   true,
            proxy: {
                type:           "ajax",
                api: {
                    create:     "ajax.aspx?xaction=create",
                    read:       "ajax.aspx?xaction=read",
                    update:     "ajax.aspx?xaction=update",
                    destroy:    "ajax.aspx?xaction=destroy"
                },
                batchActions:   false,
                reader:         { type: "json", rootProperty: "rows", totalProperty: "results" },
                writer:         { type: "json", encode: true, writeAllFields: true, rootProperty: "rows" }
            },
            listeners: {
                load:       { fn: reloadPreview },
                endupdate:  { fn: reloadPreview }
            }
        });

对于作者的“更新”调用,我没有从服务器发回任何响应......我似乎找不到任何关于 AjaxProxy 或 JsonWriter 期望返回的文档,并且发送空白响应似乎有效。

4

1 回答 1

1

您是否尝试将侦听器添加到“写入”事件?

write(store, operation, eOpts) 每当通过配置的代理成功写入时触发

http://docs.sencha.com/extjs/5.0.0/apidocs/#!/api/Ext.data.Store-event-write

于 2014-07-09T21:06:11.163 回答