// 方式1:加载编辑数据
loadData : function(id) {
var className = portal.menu.EditPanel;
// 清空原有的信息
className.fromPanel.getForm().reset();
// 查询加载数据
className.fromPanel.getForm().load({
url : 'menu/findById',
method : 'POST',
params : {
id : id // 提交的数据参数
},
waitTile : '提示',
waitMsg : '正在向服务器提交数据',
success : function(form, action) {
// action.result.msg
}
});
},
params: 传递参数到后台服务器
success: 成功后调用的方法,这里可以使用action.result.name,快速获取内容,而不用去解析json。
此方法对于查询详细信息的时候,非常简单。
// 方式2:创建Form手动回填数据,暂不使用,(个人感觉比较麻烦) Ajax方式
initFormData : function(id) {
var className = portal.menu.EditPanel;
Ext.Ajax.request({
url : 'menu/findById',
params : {
id : id
},
success : function(response) {
// 解析服务器端返回的json字符串
var jsonObj = Ext.util.JSON.decode(response.responseText);
className.menuName.setValue(jsonObj.menu.menuName);
className.parentId.setValue(jsonObj.menu.parentId);
className.combo.setValue(jsonObj.menu.r_Type);
},
failure : function(options, response) {
Ext.Msg.alert("错误", "查询失败!");
}
});
},
Ext.Ajax.request() 这里使用的是ajax提交方式,
params:封装的参数和form.load()方法一样。
success: 需要通过
var jsonObj = Ext.util.JSON.decode(response.responseText);
方式解析服务器返回的json数据。
failure:查询失败的方法。
// 方式3:form提交数据
// form提交数据
className.fromPanel.getForm().submit(
{
url : 'menu/saveMenu',
method : 'POST',
waitTitle : "提示",
waitMsg : '正在提交数据...',
success : function(form, action) {
// 服务器端返回的是字符串需要封装为jsonObject
// var result =
// Ext.util.JSON.decode(action.response.responseText);
alert("保存成功!");
// 关闭新增页面
className.editPanel.close();
// 重新加载列表数据
qryClass.loadData();
// 刷新树,获取根节点reload
// treeClass.wPanel.getRootNode().reload();
// 刷新菜单树
treeClass.wPanel.getSelectionModel()
.getSelectedNode().reload();
},
failure : function(form, action) {
// alert("保存失败");
}
});
1.form提交后,服务器返回的消息也需要json解析。