以下是部分代码。。主要说明的是convert和dateFamat函数
reader : new Ext.data.JsonReader({
root: "kcInfoList",
fields: [
{name: "id"},
{name: "contract", mapping:'contract.id'},
{name: "summary", mapping:'summary'},
{name: "startDate", type: 'date',dateFormat: 'Y-m-d//TH:i:s'},
{name: "endDate", type: 'date',dateFormat: 'Y-m-d//TH:i:s'},
{name: "supplierLinkman"},
{name: "checker", mapping:'checker', convert:function(v){
if(v)
return v.id;
else
return "";
}
},
{name: "executiveStatus", mapping:'executiveStatus', convert:function(v){
if(v)
return v.id;
else
return "";
}
},
{name: "isMeet"},
{name: "description"},
{name: "noMeetContents"},
{name: "noMeetReason"}
]
}),
从上面的例子可以看出
创建包含指定字段结构的继承自Ext.data.Record的类。静态方法。
参数:
o : Array
一个定义记录结构的字段信息数组。每个数组元素包含name,其他可选的有:mapping、type。通过它们,可以让Ext.data.Reader从一个数据对象中获取各字段的值。每个字段定义对象都可能包含如下属性:
name : String
在记录中标志一个字段的名字。它通常用于引用指定字段,例如,在定义Ext.grid.ColumnModel的dataIndex属性时,要传过去的。
mapping : String
当在Ext.data.Reader中创建记录时,如何将json对象中指定属性值映射到此字段。
type : String
字段的类型,可能值为:
auto(默认值,没有任何转化)、string、int、float、boolean、date
sortType : Mixed
Ext.data.SortTypes中的一个成员。
sortDir : String
排序方式,"ASC"或者"DESC"。
convert : Function
如果要对这个字段的值进行一些物殊处理,这时需要一个能定制的回调,用它来手工处理值。它的参数如下:
v : Mixed
通过mapping映射找到的值。已从json中取出来的。
rec : Mixed
在json中的,对应于此记录的json对象。
dateFormat : String
用于Date.parseDate函数的格式化字符串。
defaultValue : Mixed
当字段值在原数据中不存在时所取的默认值,默认为空字符串。
当然上面的代码还可以用另外的形式来表达,如:
var contentNode = new Ext.data.Record.create([
{name: 'projectId', type: 'int'},
{name: 'project', type: 'string'},
{name: 'taskId', type: 'int'},
{name: 'description', type: 'string'},
{name: 'estimate', type: 'float'},
{name: 'rate', type: 'float'},
{name: 'cost', type: 'float'},
{name: 'due', type: 'date', dateFormat:'m/d/Y'}
]);
var reader = new Ext.data.JsonReader({root:'data',id:'taskId'},contentNode);