EXT核心API详解(8~10).doc_第1页
EXT核心API详解(8~10).doc_第2页
EXT核心API详解(8~10).doc_第3页
EXT核心API详解(8~10).doc_第4页
EXT核心API详解(8~10).doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EXT核心API详解EXT核心API详解Ext.data(八)-Connection/Ajax/RecordjavascriptExt.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, /请求urlparams:Object/String/Function, /以post方法请求时传递的参数method:string , /Get/Postcallback:Function, /回叫方法,不管是成功还是失败都会呼叫这个方法,有三个参数,由options传入的options参数,success:Boolean,成功? response:Object, 含有返回数据的XMLHttpRequest对象success:Function, /成功时回叫,第一个参数为XMLHttpRequest对象,第二个参数传入指定的optionsfailure:Function, /失败时回叫,参数同successscope:Object, /范围form.:Object/String, /一个form对象或它的id,可以由此自动生成参数paramsisUpload: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在发起请求前都会调用showSpinnerExt.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默认递增起始idbeginEdit() : void开始修改cancelEdit() : void 放弃所做的修改,参见commitcopy( String id ) : Record/创建当前record的一个克隆值,如果未指定id使用当前id+1commit( 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成员之一,参见sortTypessortDir : String /正序倒序 ASC/DESC值之一convert : Function /转换函数,这个功能很有用,可自定义,接收当前value返回处理后的valuedateFormat : 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设定新值valueEXT核心API详解Ext.data(九)-DataProxy/HttpProxy/MemoryProxy/Ext.data.DataProxy数据代理类是一个纯虚类,主要用于生成Ext.data.Record对象,没有公开的属性和方法,只是归定子类需要处理三个事件beforeload : ( Object This, Object params )load : ( Object This, Object o, Object arg )loadexception : ( Object This, Object o, Object arg, Object e )事实上参数也是子类自定义的Ext.data.HttpProxyapi文档中说httpProxy是从object继承来的,事实上source中它和下面的Ext.data.MemoryProxy/Ext.data.ScriptTagProxy都继承于DataProxyHttpProxy用于远程代理,而且服务端返回信息时必须指定Content-Type属性为text/xml.HttpProxy( Object conn )构造一个HttpProxy对象,参数可以是一个类似于url: foo.php这样的json对象,也可以是一个Ext.data.Connection对象,如果参数没有指定,将使用Ext.Ajax对象将被用于发起请求getConnection() : Connection得到当前连接对象load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void从配置的connection对象得到record数据块,并激发callbackparams: 发起http请求时所要传递到服务端的参数DataReader: 见DataReadercallback: 回叫方法,第一个参数为接收到的信息,第二个参数为arg,第三个是成功标志scope: 范围arg: 这儿的参数将会传递给回叫函数callback使用示例:var proxy=new Ext.data.HttpProxy(url:datasource.xml); /关于reader将会在Ext.data.DataReader中讲解 var reader = new Ext.data.XmlReader( totalRecords: results, record: row, id: id , name: name, mapping: name, name: occupation ); /定义回叫方法 var metadata; function callback(data,arg,success) if(success) metadata=data; /从connection配置的url中利用reader将返回的xml文件转为元数据,并传递给callback proxy.load( null,reader,callback,this);Ext.data.MemoryProxyMemoryProxy( Object data )构造load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void取数据,和HttpProxy类似,只是params参数没有被使用使用示例var proxy=new Ext.data.MemoryProxy( 1, Bill, Gardener, 2, Ben, Horticulturalist ); var reader = new Ext.data.ArrayReader(id: 0, name: name, mapping: 1, name: occupation, mapping: 2 );var metadata;function callback(data,arg,success) metadata=data;proxy.load( null,reader,callback,this);Ext.data.ScriptTagProxy这个类和HttpProxy类似,也是用于请求远程数据,但能用于跨主域调用,如果请求时使用了callback参数则服务端应指定Content-Type属性为text/javascript并返回callback(jsonobject)反之则应置Content-Type属性为application/x-json并直接返回json对象ScriptTagProxy( Object config )构造,其中config定义为callbackParam : String, /回叫参数nocache : Boolean, /是否缓存timeout : Number, /超时url : String /请求数据的urlabort() : void放弃load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void EXT核心API详解Ext.data(十)-DataReader/ArrayReader/JsonReaderExt.data.DataReader纯虚类,从数据源得到结构化数据转换为元数据对象,对象包含Record的集合,一般用做Store对象的元数据,具有如下格式totalRecord:int,records:Array of Ext.data.Record具体使用参见三个子类Ext.data.ArrayReader/Ext.data.JsonReader/Ext.data.XmlReader方法DataReader( Object meta, Object recordType )构造Ext.data.ArrayReader用于读数组到一个元数据对象ArrayReader( Object meta, Object recordType )构造,第一个参数是配置除了可以指示使用哪个字段做id外,不懂其它的用法,第二个参数是recordType与record对象的create方法的参数一样,是一样config对象数组,具体参见readRecords( Object o ) : Object读取o,返回一个元数据对象用例示范:/定义数组var arr= 1, Bill, Gardener, 2, Ben, Horticulturalist ; var reader = new Ext.data.ArrayReader(/以第一个元素做为recordid id: 0, /定义数组到record的映射关系 name: name, mapping: 1, name: occupation, mapping: 2 );/生成元数据var data=reader.readRecords(arr);Ext.data.JsonReader用于将一个json对象转换为元数据对象JsonReader( Object meta, Object recordType )JsonReader的构造参数meta可以有更多选择,id : String,root : String,successProperty : String,totalProperty : String都是对应json对象的属性名read( Object response ) : Object从一个response对象返回,response.responseText属性应仅含有一个json格式数据块readRecords( Object o ) : Object读取o,返回一个元数据对象使用示例: var json= results: 2, rows: id: 1, name: Bill, occupation: Gardener , id: 2, name: Ben, occupation: Horticulturalist ; var reader=new Ext.data.JsonReader( totalProperty: results,/totalRecords属性由json.results得到 root: rows, /构造元数据的数组由json.rows得到 id: id /id由json.id得到 , name: name, mapping: name, name: occupation /如果name与mapping同名,可以省略mapping ) var data=reader.readRecords(json);Ext.data.XmlReaderxmlreader对象当然是为xml而准备的构造:XmlReader( Object meta, Mixed recordType )meta与jsonreader类似, meta是一个 id : String, record : String, success : String, totalRecords : String对象,只是这些字符串都是相对于文档根目录的domquery路径read( Object response ) : ObjectreadRecor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论