我有一个Extjs窗口,它有两个按钮'保存并刷新'和'清除'按钮。
现在我需要在按钮点击“保存并刷新”按钮时刷新窗口。
你能告诉我怎么做吗?感谢你,
此致 沙迪亚
答案 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"
}
您可以使用响应对象发送更新的(待刷新的)数据。在表单的提交回调函数中,您可以获取响应数据并使用它来刷新表单。
希望有所帮助