//方式1:加载编辑数据 loadData:function(id){ varclassName=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 } }); },
// 方式2:创建Form手动回填数据,暂不使用,(个人感觉比较麻烦) Ajax方式
initFormData:function(id){ varclassName=portal.menu.EditPanel; Ext.Ajax.request({ url:'menu/findById',params:{ id:id },success:function(response){ //解析服务器端返回的json字符串 varjsonObj=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: 需要通过
varjsonObj=Ext.util.JSON.decode(response.responseText);
方式解析服务器返回的json数据。
// 方式3:form提交数据
//form提交数据 className.fromPanel.getForm().submit( { url:'menu/saveMenu',waitTitle:"提示",waitMsg:'正在提交数据...',action){ //服务器端返回的是字符串需要封装为jsonObject //varresult= //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解析。