Ext.data.Connection
訪問指定的url,這是個非同步呼叫類,如果想得到伺服器資訊,請在request參數中指定callback方法或指定偵聽者(對檔案上傳無效)
Connection( Object config )
構造,config定義為{
autoAbort : Boolean,
defaultHeaders : Object,
disableCaching : Boolean,
extraParams : Object,
method : String,
timeout : Number,
url : String
}
對象
方法:由 Observable繼承過來的方法省略
abort( [Number transactionId] ) : void
放棄請求,如果同時有多個請求發生,參數指示請求進程式號,不指定則是放棄最後一個請求
isLoading( [Number transactionId] ) : Boolean
第transactionId個請求是否完成載入,未批定指最後一個
request( [Object options] ) : Number
最實用的當然是這個方法了,返回的正是前面的兩個方法所需要的進程id
其中options定義為{
url:string, //請求url
params:Object/String/Function, //以post方法請求時傳遞的參數
method:string , //Get/Post
callback:Function, //回叫方法,不管是成功還是失敗都會呼叫這個方法,有三個參數,由options傳入的options參數,success:Boolean,成功?response:Object, 含有返回資料的XMLHttpRequest對象
success:Function, //成功時回叫,第一個參數為XMLHttpRequest對象,第二個參數傳入指定的options
failure:Function, //失敗時回叫,參數同success
scope:Object, //範圍
form:Object/String, //一個form對象或它的id,可以由此自動產生參數params
isUpload:Boolean, //檔案上傳?通常可以自動檢測
headers:Object, //要自訂的要求標頭資訊
xmlData:Object //一個xml文檔對象,它將通過url附加參數的方式發起請求
disableCaching:Boolean //是否禁用緩衝?預設為真
}
Ext.Ajax
由Ext.data.Connection 繼承而來,方法和父類一模一樣,但使用起來更簡單一些,是一個全域惟一靜態類
樣本:
Ext.Ajax.request({
url: 'foo.php',
success: someFn,
failure: otherFn,
headers: {
'my-header': 'foo'
},
params: { foo: 'bar' }
});
Ext.Ajax.request({
form: 'some-form',
params: 'foo=bar'
});
//所有的Ext.Ajax請求都會加個這個預設的頭
Ext.Ajax.defaultHeaders = {
'Powered-By': 'Ext'
};
//所有的Ext,Ajax在發起請求前都會調用showSpinner
Ext.Ajax.on('beforerequest', this.showSpinner, this);
Ext.data.Record
基本上可以理解為.net中的datarow或者sql server中的一行資料,它存放了資料的定義資訊和他們的值
[公有屬性]
data : Object 資料內容,一個json對象
dirty : Boolean 是否修改過
id : Object 惟一ID,預設從1000開始以1剃增
modified : Object 如果記錄沒有修改過,為null如果修改過則存放原始值資訊
[公有方法]
Record( Array data, [Object id] )
這個構造方法並不用於建立記錄對象,相反,應該使用create方法來建立record對象,參數data定義見create方法,id預設遞增起始id
beginEdit() : void
開始修改
cancelEdit() : void
放棄所做的修改,參見commit
copy( [String id] ) : Record
//建立當前record的一個複製值,如果未指定id使用當前id+1
commit( [Boolean silent] ) : void
commit方法一般會被Store對象調用而不是recorde本身,提交自建立或最後一次修改後的所有變更,如果silent為真將不會通知store對象
create( [Array o] ) : function
靜態構造方法 o是config數組
其中config可以含有如下屬性
{
name : String //欄位名
mapping : String //用於reader時的映射關係,如果是用於jsonreader,使用相對目前記錄的javascript運算式
//,如果是用於xmlreader,則是相對於記錄的domquery運算式,對於ArrayReader,則是序號
type:String //可選值 auto /string/int/float/boolean/date,其中auto是預設值,不進行轉換
sortType : Mixed //排序類型,Ext.data.SortTypes成員之一,參見sortTypes
sortDir : String //正序倒序 ASC/DESC值之一
convert : Function //轉換函式,這個功能很有用,可自訂,接收當前value返回處理後的value
dateFormat : String //日期格式化字串,convert:function的一個特例,使用Date.parseDate方法轉換當前日期
}
endEdit() : void
結束修改
get( name {String} ) : Object
指定命名欄位string的值
getChanges() : Object
返回修改記錄的對象
reject( [Boolean silent] ) : void
和commit相似,當然是拒絕所做的修改
set( String name, Object value ) : void
為欄位name設定新值value