|
请问这个教程里面 http://doc.wex5.com/?p=3158
data.setValue('fWeight','200') 这句是影响哪行? 这种看起来没有指定行的默认是哪行呢
=============
二、Data的列
Data组件的列定义
列定义包括:name、type、label,
name:列的唯一标识
type:列的数据类型,取自范围:String、Integer、Long、Float、Double、Decimal、Boolean、Date、Time、DateTime
label:列显示名称,当没有定义时,label为name
另外Data组件上还有一个重要的属性idColumn,用来指定Data数据中行ID的表示列,可以理解为关系型数据库中表上定义的key关系
<div xid="fruitData" component="$UI/system/components/justep/data/data"
idColumn="fID" autoLoad="true">
<column label="ID" name="fID" type="String"/>
<column label="显示名称" name="fName" type="String"/>
<column label="重量" name="fWeight" type="Double"/>
<data>
[{"fName":"苹果","fID":"apple","fWeight":100},
{"fName":"梨","fID":"pear","fWeight":80},
{"fName":"西瓜","fID":"watermelon","fWeight":1800},
{"fName":"香蕉","fID":"banana","fWeight":3600}]
</data>
</div>
相关的属性和API:
属性:
Data.defCols:存放列的定义信息
Data.idColumn
代码示例:
var data = this.comp('fruitData');
var IDColDef = data.defCols[data.idColumn];//获取ID列的定义
alert(data.idColumn+' label:'+IDColDef.label+',name:'+IDColDef.name+',type:'+IDColDef.type);
取值赋值相关API:
Data.getValue(col,row);
Data.setValue(col,value,row);
Row.val(col,value);
获取数据时会根据列定义进行数据的转换,目前支持string—>Integer、Long、Float、Double、Decimal、Date、Time、DateTime转化,当转换失败时返回Data.ErrorValue对象,通过ErrorValue.value可以获取原值
代码示例:
var data = this.comp('fruitData');
//给fWeight设置字符数据
data.setValue('fWeight','200');
var v = data.getValue('fWeight');
alert('fWeight'+typeof(v)+')'+v);
//给fWeight设置字符数据'abc'非有效的数值字符串
data.setValue('fWeight','abc');
v = data.getValue('fWeight');
alert('fWeight:'+v+','+v.value); |
|