Forms 使用form/form-grid.js下的EXTJS4示例-如何在提交表单后重新加载网格

Forms 使用form/form-grid.js下的EXTJS4示例-如何在提交表单后重新加载网格,forms,grid,extjs4,store,Forms,Grid,Extjs4,Store,我使用的是extjs4.0.7gpl。我正在使用form/form-grid.js下的示例。我想在编辑表单中显示的条目后重新加载示例中的网格 我正在使用PHPWeb服务将数据加载到表单网格中。我设置了一个处理程序,用于在进行编辑时处理表单条目,并更新网格中的值。它工作正常并更新数据库。成功后,我使用下面的函数调用调用重新加载存储,并看到JSON在重新加载时返回(在FireBug中),但数据没有加载到网格中。如何获取从存储加载返回的数据以填充到网格中并进行更新 我希望最终使用MVC,但现在我希望能

我使用的是extjs4.0.7gpl。我正在使用form/form-grid.js下的示例。我想在编辑表单中显示的条目后重新加载示例中的网格

我正在使用PHPWeb服务将数据加载到表单网格中。我设置了一个处理程序,用于在进行编辑时处理表单条目,并更新网格中的值。它工作正常并更新数据库。成功后,我使用下面的函数调用调用重新加载存储,并看到JSON在重新加载时返回(在FireBug中),但数据没有加载到网格中。如何获取从存储加载返回的数据以填充到网格中并进行更新

我希望最终使用MVC,但现在我希望能够在form.submit success上的表格grid中重新加载表格

我的商店中有一个'tvdStore'的'storeId',我使用以下命令重新加载商店:

{
    xtype: 'button',
    text: 'Save',
    style: 'margin: 0 5px 0 5px',
        handler: function (button) {

        // when this button is clicked, sumbit this form
        var form = this.up('form').getForm();

        var rating = form.findField("rating").getValue();
        var formTargetId = form.findField("ID").getValue();
        var formFamilyName = form.findField("FAMILYNAME").getValue();
        var formTargetName = form.findField("TARGETNAME").getValue();
        var formTableName = form.findField("TABLENAME").getValue();

        // convert the int value back to a string
        var stringVal = "";
        if (rating === true) {
            stringVal = 'Yes';
        } else if (rating === false) {
            stringVal = 'No';
        }

        form.submit({
            waitMsg: 'Saving...',       // Wait Message
            method: 'POST',
            params: { 'targetValue' : stringVal , 'targetId' : formTargetId , 'tableName' : targetName },
            url: 'app/model/target/GG/add-update_svc.php',
            success: function (form, action) { // When saving data success
                Ext.Msg.alert('Success', action.result.message);    

                // clear the form
                form.reset();

                // reload store
                Ext.data.StoreManager.lookup('tvdStore').load(
                    {
                        params: {
                            tableName: formTableName,
                            targetName: targetName,
                            familyName: formFamilyName
                        }
                    }
                );

            },
            failure: function (form, action) {      // when saving data failed
                Ext.MessageBox.alert ('Message','Saving data failed');
            }
        });
    }
}

我看到FireBug中的JSON回来了,应该加载到网格中,所以存储正在重新加载,但我没有看到加载掩码,网格本身也从未更新过。

实际上,在任何更新/删除/插入过程之后,您绝对没有也不应该重新加载整个存储。Store类有一个逻辑,它在从服务器接收结果消息后更新记录的本地副本。因此,您可能需要确保服务器返回正确的消息,并且本地副本已更新

网格也应该自动重新绘制更新的记录