var store=new Ext.data.Store({
url:"hello.xml",
reader:new Ext.data.XmlReader({
record:"row"},
["id","name","organization","homepage"])
});
因為Sote組件接受一個參數url,如果設定url,則ExtJS會建立一個與伺服器互動的Ext.data.HttpProxy對象,該對象通過指定的Connection或Ext.Ajax.request來向服務端發送請求,從而可以讀取到伺服器端的資料。
經驗表明,伺服器端產生JSon資料是一種非常不錯的選擇,也就是說假如伺服器的url“student.ejf?cmd=list”產生下面的JSON資料輸出:
{results:[{id:1,
name:'小王',
email:'xiaowang@easyjf.com',
sex:'男',
bornDate:'1991-4-4'},
{id:1,
name:'小李',
email:'xiaoli@easyjf.com',
sex:'男',
bornDate:'1992-5-6'},
{id:1,
name:'小蘭',
email:'xiaoxiao@easyjf.com',
sex:'女',
bornDate:'1993-3-7'}
]
}
則前面顯示學習資訊編輯表格的store可以建立成下面的形式:
var store=new Ext.data.Store({
url:"student.ejf?cmd=list",
reader:new Ext.data.JsonReader({
root:"result"},
["id","name","organization","homepage"])
});
或者:
var store=new Ext.data.JsonStore({
url:"student.ejf?cmd=list",
root:"result",
fields:["id","name","organization","homepage"]});
其中root表示包含記錄集資料的屬性。
如果在運行程式中需要給伺服器端發送資料的時候,此時可以直接使用ExtJS中提供的Ext.Ajax對象的request方法。比如下面的代碼實現放伺服器的student.ejf?cmd=save這個url發起一個請求,並在params中指定發送的Student對象:
function sFn()
{
alert('儲存成功');
}
function fFn()
{
alert('儲存失敗');
}
Ext.Ajax.request({
url: 'student.ejf?cmd=save’
success: sFn
failure: fFn,
params: { name: '小李',email: ' xiaoli@easyjf.com',bornDate: ' 1992-5-6',sex: '男'}
});