// 方式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: 傳遞參數到後臺服務器ajax
success: 成功後調用的方法,這裏能夠使用action.result.name,快速獲取內容,而不用去解析json。json
此方法對於查詢詳細信息的時候,很是簡單。服務器
// 方式2:建立Form手動回填數據,暫不使用,(我的感受比較麻煩) Ajax方式url
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提交方式,code
params:封裝的參數和form.load()方法同樣。orm
success: 須要經過
字符串
var jsonObj = Ext.util.JSON.decode(response.responseText);
方式解析服務器返回的json數據。get
failure:查詢失敗的方法。
it
// 方式3:form提交數據io
// 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解析。