Ext JS 4可编辑网格

Ext JS 4 editable grid

本文关键字:编辑 网格 JS Ext      更新时间:2023-09-26

我正在尝试编写ExtJS应用程序,这是网格,从服务器上的JSON文件加载数据,并发送修改字段回服务器。问题是,我无法管理实际发送更改或添加的数据回服务器脚本。下面是代码:

var store = Ext.create('Ext.data.Store', {
    model: 'ObjectDefinitionModel',
    autoDestroy: true,
    autoLoad: true,
    proxy: {
        type: 'ajax',
        url: 'load-object-definition',
        api: {
            read: 'load-object-definition',
            create: 'save-object-definition',
            update: 'update-object-definition',
            destroy: 'delete-object-definition'
        },
        reader: {
            type: 'json',
            root: 'fields'
        },
        writer: {
            type: 'json',
            root: 'fields'
        }
    }
});

我有按钮,按下时调用store.sync()。同步后,脚本在save-object-definition 执行,但所有它收到(在POST和GET)是[_dc] => 1311511955134,我不知道它是什么。API文档指出,所有更改和添加的数据都应该打包并通过代理自动发送。官方示例没有显示实际发送的任何数据,只有一些调试消息。将感谢任何帮助,提前感谢。

我在我的一个项目中也遇到了同样的问题,我应该只将新添加或更新的记录发送到服务器以进行保存。我最初尝试了与您在这里发布的相同方法,但后来(因为它也不适合我)我创建了自定义代码来执行以下操作:

。当用户单击保存按钮时,浏览网格的所有记录,并识别更新或新添加的记录。

b。创建一个包含所有这些记录的自定义JSON,并使用该JSON作为参数之一向服务器发出Ajax请求。

这些都是额外的工作,但最终达到了我的目的。

ExtJS代理真正发送数据,但是使用RAW POST。您可以使用以下函数获取它们:

function GetRAWdata()
{
    $result = NULL;
    if(function_exists('json_decode'))
    {
        $jsonData = json_decode(trim(file_get_contents('php://input')), true);
        $result = $jsonData['data'][0];
    }
    return $result;
}