zoukankan      html  css  js  c++  java
  • Ext.dataDataReader/ArrayReader/JsonReader/XmlReader

    Ext.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.XmlReader
    xmlreader对象当然是为xml而准备的

    构造:
    XmlReader( Object meta, Mixed recordType )
    meta与jsonreader类似,
    meta是一个{
        id : String,
        record : String,
        success : String,
        totalRecords : String
    }对象,只是这些字符串都是相对于文档根目录的domquery路径
    read( Object response ) : Object
    readRecords( Object doc ) : Object
    ....


    var str=["<?xml version=\"1.0\" encoding=\"utf-8\" ?>",
        "<dataset>",
     "<results>2</results>",
     "<row>",
       "<id>1</id>",
       "<name>Bill</name>",
       "<occupation>Gardener</occupation>",
     "</row>",
     "<row>",
       "<id>2</id>",
       "<name>Ben</name>",
       "<occupation>Horticulturalist</occupation>",
     "</row>",
    "</dataset>"].join("");

    //生成xmldocument对象
    var xmlDocument;
     if(Ext.isIE){
        xmlDocument = new ActiveXObject("Msxml2.FreeThreadedDOMDocument")
        xmlDocument.async=false;
        xmlDocument.resolveExternals = false;
        xmlDocument.loadXML(str)
    }
    else{
       xmlDocument = (new DOMParser()).parseFromString(str, "text/xml");
    }

    //然后开始...和其它两个reader一样的用法,只是这儿换了一种写法,recordtype也可以是一个record对象
    var record = Ext.data.Record.create([
       {name: 'name', mapping: 'name'},     // "mapping" property not needed if it's the same as "name"
       {name: 'occupation'}                 // This field will use "occupation" as the mapping.
    ])
    var reader = new Ext.data.XmlReader({
       totalRecords: "results",
       record: "row",           //row是节点选择器
       id: "id"                
    }, record);
    var data=reader.readRecords(xmlDocument);
  • 相关阅读:
    JDBC编程总结
    JDBC
    Java之Hashtable、HashMap及Properties
    List集合和Set集合的基本应用
    为什么Java中有多态?
    面向对象的特征有哪些?
    Java基础测试题背后的认知
    PHP实现将浏览历史页面网址保存到cookie的方法
    字符串的常用函数
    SAP中寻找增强的实现方法(转)
  • 原文地址:https://www.cnblogs.com/meetrice/p/1206054.html
Copyright © 2011-2022 走看看