天天看點

Ext.data- Connection/Ajax/Record

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' }

});

    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

繼續閱讀