如何使用ExtJs下的商店提交表单?

Jam*_*hon 6 forms extjs store extjs4

有没有办法让表单提交在ExtJs 4下的商店中创建一个对象?

我觉得奇怪的是,网格是完全围绕商店机制构建的,我没有看到将表单插入商店的明显方法.但我很可能只是遗漏了一些东西.

Izh*_*aki 13

您可以使用以下代码在表单提交时将模型实例添加到商店:

onSaveClick: function()
{
    var iForm         = this.getFormPanel().getForm(),
        iValues       = iForm.getValues(),
        iStore        = this.getTasksStore();

    iStore.add( iValues );
},
Run Code Online (Sandbox Code Playgroud)

这是在MVC控制器内,控制器this也是如此.

对于模型编辑,您可以使用loadRecord以下命令将表单"绑定"到模型实例:

iFormPanel.loadRecord( this.selection );
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用updateRecord()以下命令更新模型实例

iFormPanel.getForm().updateRecord();
Run Code Online (Sandbox Code Playgroud)

只是为了好玩(因为它可能有所帮助),它类似于以下代码:

onSaveClick: function()
{
    var iForm         = this.getFormPanel().getForm(),
        iRecord       = iForm.getRecord(),
        iValues       = iForm.getValues();

    iRecord.set ( iValues );        
},
Run Code Online (Sandbox Code Playgroud)

如果你的商店有autoSync: true.将通过配置的代理进行更新(或创建)调用.如果没有autoSync,您必须手动同步您的商店.