如何在按钮单击时刷新extjs窗口(Ext.Window)

时间:2011-05-14 15:12:37

标签: jquery ajax extjs

我有一个Extjs窗口,它有两个按钮'保存并刷新'和'清除'按钮。

现在我需要在按钮点击“保存并刷新”按钮时刷新窗口。

你能告诉我怎么做吗?

感谢你,

此致 沙迪亚

3 个答案:

答案 0 :(得分:2)

您需要对该按钮的引用。希望您的代码中已有一个,但如果没有,您可以尝试使用Ext.Windows公共“按钮”属性:

var = saveAndRefreshButton = myExtWindow.buttons[0]; // or 1

虽然如果我没记错,按钮属性在4.0中消失了...更有理由保持对按钮的引用。

单击按钮后立即重新加载页面:

saveAndRefreshButton.on('click', function() {
    window.location.reload();  // standard JavaScript to reload a page.
});

你更有可能想等待一个AJAX请求来完成保存(根据你的问题和常识上的ajax标签猜测)

saveAndRefreshButton.on('click', function() {
    Ext.Ajax.request({
        url: 'save.php',
        // jsonData, params, or whatever to pass down the data to save,
        success: function() {
            window.location.reload();
        },
        failure: function() {
            // couldn't save... show an error or something.
        }
    });
});

答案 1 :(得分:1)

我认为,你需要两个步骤。保存然后刷新

尝试使用meta http-equiv =“refresh”

<?php print "<meta http-equiv=\"refresh\" content=\"1;URL=SOMETHING.PAGE\">"; ?>

答案 2 :(得分:1)

我认为你在窗口中有表格。所以,你应该绑定一个处理程序来保存&amp;刷新按钮。

您可以使用提交方法。你可以绑定一个回调函数来提交。你可以参考文档。这里是一个从文档中提取的样本提交实现;

myFormPanel.getForm().submit({
    clientValidation: true,
    url: 'updateConsignment.php',
    params: {
        newStatus: 'delivered'
    },
    success: function(form, action) {
        Ext.Msg.alert('Success', action.result.msg);
    },
    failure: function(form, action) {
        switch (action.failureType) {
            case Ext.form.Action.CLIENT_INVALID:
                Ext.Msg.alert('Failure', 'Form fields may not be submitted with invalid values');
                break;
            case Ext.form.Action.CONNECT_FAILURE:
                Ext.Msg.alert('Failure', 'Ajax communication failed');
                break;
            case Ext.form.Action.SERVER_INVALID:
               Ext.Msg.alert('Failure', action.result.msg);
       }
    }
});

在服务器端,您应该准备一个这样的响应:

成功运作:

{
    "success":true, // note this is Boolean, not string
    "msg":"Consignment updated"
}

操作失败:

{
    "success":false, // note this is Boolean, not string
    "msg":"You do not have permission to perform this operation"
}

您可以使用响应对象发送更新的(待刷新的)数据。在表单的提交回调函数中,您可以获取响应数据并使用它来刷新表单。

希望有所帮助