日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

轉(zhuǎn)載

 喜氣蜘蛛 2015-05-05
Ext.form.formPanel 與服務(wù)器交互 初始化表單

    formPanel 初始化表單有兩種方式加載,一種是本地加載,一種是通過返回回來的Json格式數(shù)據(jù)加載到表單里面。
得到表單來加載數(shù)據(jù)的時候,必須用form.getForm(), 得到basicForm()這個對象,formPanel是繼承自basciForm()
本地加載通過form.getForm.loadRecord() 加載,傳入的一個記錄集(new Ext.data.record.create())。 根據(jù)相應(yīng)的映射會自動匹配到表單的每個文本框。
    比如,通過點擊表格的編輯連接,得到表格記錄的行數(shù)據(jù),初始化到表單。
var updateGrid = Ext.getCmp("displayEmpGrid");
var rows = updateGrid.getSelectionModel().getSelections();
if (rows) {
//for (var i = 0; i < rows.length; i++) {
alert(rows[0].imageUpload);
form.getForm().loadRecord(rows[0]); //將數(shù)據(jù)集加載到表單中,直接獲取表格的數(shù)據(jù)
Ext.get('imageBrowse').dom.src = "images/anniubg.gif";
//}
}
    這種方式是將所有的數(shù)據(jù)放一次到頁面,加載所有的數(shù)據(jù)到頁面會加重頁面負(fù)擔(dān)。。

    遠程加載是通過 form.getForm().load()加載。
// 解析后臺返回的數(shù)據(jù)

var empReader = new Ext.data.JsonReader              //解析Json格式數(shù)據(jù)。 ({                                                                                                                                                                                                                                                  

name:"empNo ",   //表單對應(yīng)的屬性名

mapping:"empNo"      //為json數(shù)據(jù)里面 對應(yīng)的屬性值

},{name:"empName", mapping:"empName"});


form.getForm().reader = empReader;   //這個不能少,不然明明有獲得數(shù)據(jù),確沒有顯示。。

// 從后臺加載json格式數(shù)據(jù)
form.getForm().load({
url : "employee_selectByPrimaryEmployee.action",     
method : "POST",
params : {
empNo : empNo //參數(shù)
}
});

//json數(shù)據(jù),即action中 selectByPrimaryEmployee 所要返回到頁面的json數(shù)據(jù)格式

var json = [{empNo:"111",empName:"小王"}];

     printwrite.print(json);     //將數(shù)據(jù)返回到前臺

    這樣子就是通過將服務(wù)器數(shù)據(jù)加載到表單顯示。一定要注意,加載本地和加載遠程不要用錯方法了,加載遠程是用load(),里面?zhèn)鞯膗rl。 本地用 加載用loadRecord(),直接傳入一個Stroe的記錄集,就可以加載進去。

------------------------------------------------------------------------------------------------------------------------------------

grid.on('rowdblclick', function(grid, rowIndex, e) {   

  1.        var selectedId = ds.data.items[rowIndex].id;  
  2.      form1.loadRecord(ds.getAt(selectedId-1));  
  3.     }); 

Ext.form.Form.loadRecord( Record record ) 加載一條記錄,如果再做一點簡單的工作,form可以根據(jù)grid記錄的結(jié)構(gòu)自動生成、渲染。

另外data store有個方便的query方法,可以判斷grid某記錄是否是新增加記錄,比如這樣:

  1. if(ds.query('state','new').length!=0){  
  2.    console.log("我有新增記錄!");  
  3.    //......  

var editForm = new Ext.form.FormPanel( {
baseCls : 'x-plain',
labelWidth : 75,
url : 'editCustomer.adminService',
defaultType : 'textfield',
items : [new Ext.form.TextField( {
fieldLabel : 'userID',
allowBlank : false,
name : 'id',
anchor : '90%'
}), {
fieldLabel : '用戶名',
name : 'name',
allowBlank : false,// readOnly:true,
anchor : '90%'
}, {
fieldLabel : '真實姓名',
name : 'realName',
allowBlank : false,
anchor : '90%'
}, {
fieldLabel : '國籍',
name : 'unation',
allowBlank : false,
anchor : '90%'
}]
});

var editWin;
var editCustomer = function() {
if (!currRecord) {
Ext.MessageBox.alert('提示', '請選擇一個用戶。');
} else {
if (!editWin) {
editWin = new Ext.Window( {
title : '修改用戶信息',
layout : 'fit',
width : 500,
height : 300,
closeAction : 'hide',
plain : true,
modal : true,
items : editForm,
buttons : [ {
text : '保存',
handler : function() {
// 保存修改信息
if (editForm.form.isValid()) {
editForm.form.submit( {
waitMsg : '正在處理...',
failure : function(form, action) {
Ext.MessageBox.alert(
'Error Message', '保存失敗');
},
success : function(form, action) {
Ext.MessageBox.alert('提示', '保存成功');
addWin.hide();
store.reload();
}
});
} else {
Ext.MessageBox
.alert('錯誤', '請修正頁面提示的錯誤后提交。');
}
}
}, {
text : '關(guān)閉',
handler : function() {
editWin.hide();
}
}]
});
}
editWin.show();
editForm.getForm().loadRecord(currRecord);
}
}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多