EXT核心API详解1114文档格式.docx
《EXT核心API详解1114文档格式.docx》由会员分享,可在线阅读,更多相关《EXT核心API详解1114文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
void
增加记录records到store
addSorted(Ext.data.Recordrecord):
增加record到store并排序(仅本地排序时有用)
clearFilter(BooleansuppressEvent):
清除过滤器
collect(StringdataIndex,[BooleanallowNull],[BooleanbypassFilter]):
Array
收集由dataIndex指定字段的惟一值
commitChanges():
提交Store所有的变更,会引发Update事件
filter(Stringfield,String/RegExpvalue,[BooleananyMatch],[BooleancaseSensitive]):
设定过滤器
field:
String
//字段名
value:
//RegExp如果是字符器,检查field是否以value开始,如果是正则,检查是否匹配
anyMatch:
Boolean//匹配任何部分而不仅令是开始
caseSensitive:
Boolean//大小写敏感?
filterBy(Functionfn,[Objectscope]):
更强悍的过滤方法.fn接收两个参数record和id
find(Stringproperty,String/RegExpvalue,[NumberstartIndex],[BooleananyMatch],[BooleancaseSensitive]):
Number
找到符合条件的第一条记录,参数同filter
findBy(Functionfn,[Objectscope],[NumberstartIndex]):
参见filterBy
getAt(Numberindex):
Ext.data.Record
getById(Stringid):
依充号/id得到record对象
getCount():
得到记录数
getModifiedRecords():
Ext.data.Record[]
得到修改过的记录集
getRange([NumberstartIndex],[NumberendIndex]):
得到指定范围的记录集合
getSortState():
得到排序状态:
显然不是void而是返回一个排序对象,同sortInfo一样的结构{field:
getTotalCount():
这个对于翻页信息还是很有用的
indexOf(Ext.data.Recordrecord):
indexOfId(Stringid):
由记录或id得到序号
insert(Numberindex,Ext.data.Record[]records):
在指定的位置插入记录,并引发add事件
isFiltered():
Boolean
当前设置了过滤器则返回真
load(Objectoptions):
由指定的Proxy使用指定的reader读取远程数据
options定义为
{
params:
Object,
//请求url需要附加的参数
callback:
Function//回叫方法,接收三个参数
//r:
Ext.data.Record[]//返回的record数组
//options:
Optionsload方法传入的options
//success:
Boolean//成功
scope:
Object,//范围.默认是store本身
add:
Boolean追加还是更新
loadData(Objectdata,[Booleanappend]):
用法比load简单一点,目的是一样的,只是这次数据由本地读取
query(Stringfield,String/RegExpvalue,[BooleananyMatch],[BooleancaseSensitive]):
MixedCollection
queryBy(Functionfn,[Objectscope]):
查询,参数和find类似,但返回所有符合条件的record,而不是第一个符合条件记录的序号
rejectChanges():
放弃所有的变更
reload([Objectoptions]):
重新载入,相当于load(options,false),如果连options都没有传入,则取最后一次load时使用的参数
remove(Ext.data.Recordrecord):
移除指定记录
removeAll():
移除所有记录
setDefaultSort(StringfieldName,[Stringdir]):
设置默认排序规则
sort(StringfieldName,[Stringdir]):
排序
sum(Stringproperty,Numberstart,Numberend):
对property字段由start开始到end求和
事件列表
add:
(Storethis,Ext.data.Record[]records,Numberindex)
beforeload:
(Storethis,Objectoptions)
clear:
(Storethis)
datachanged:
load:
(Storethis,Ext.data.Record[]records,Objectoptions)
loadexception:
()
metachange:
(Storethis,Objectmeta.)
remove:
(Storethis,Ext.data.Recordrecord,Numberindex)
update:
(Storethis,Ext.data.Recordrecord,Stringoperation)
看名字都很简单,参数也不复杂,略过
用例
//得到远程json对象
//其中jsoncallback.js内容为
//{'
results'
:
2,'
rows'
[
//
{'
id'
1,'
name'
'
Bill'
occupation:
Gardener'
},
Ben'
Horticulturalist'
}]
//}
//定义proxy
varproxy=newExt.data.HttpProxy(...{url:
'
jsoncallback.js'
});
//定义reader
varreader=newExt.data.JsonReader(
...{
totalProperty:
results"
//totalRecords属性由json.results得到
root:
rows"
//构造元数据的数组由json.rows得到
id:
id"
//id由json.id得到
},[
...{name:
mapping:
},
occupation'
}
//如果name与mapping同名,可以省略mapping
]
)
//构建Store
varstore=newExt.data.Store(...{
proxy:
proxy,
reader:
reader
});
//载入
store.load();
示例2
//得到远程xml文件
//其中xml文件内容为
<
?
xmlversion="
1.0"
encoding="
utf-8"
?
>
dataset>
results>
2<
/results>
row>
<
id>
1<
/id>
name>
Bill<
/name>
occupation>
Gardener<
/occupation>
/row>
Ben<
Horticulturalist<
/dataset>
varproxy=newExt.data.HttpProxy(...{url:
datasource.xml'
varreader=newExt.data.XmlReader(...{
totalRecords:
record:
row"
},[
]);
EXT核心API详解Ext.data(十二)-GroupingStore/JsonStore/SimpleStore
Ext.data.GroupingStore
继承自Ext.data.Store,为Store增加了分组功能.其它用法与Store一致,惟一需要注意的是使用GroupingStore时必须指定sortInfo信息
增加了配置属性
groupField:
String//用于分组的字段
groupOnSort:
Boolean//如果为真,将依排序字段重新分组,默认为假
remoteGroup:
Boolean//远程排序
当然也会多一个group方法
groupBy(Stringfield,[BooleanforceRegroup]):
顾名思义都是重新排序用的
下面是个简单的示例
vararr=[[1,'
本'
'
拉登'
],[2,'
笨'
],[3,'
拉灯'
]];
varreader=newExt.data.ArrayReader(
...{id:
0},
1},
2}
varstore=newExt.data.GroupingStore(...{
reader,
groupField:
groupOnSort:
true,
sortInfo:
...{field:
ASC"
}//使用GroupingStore时必须指定sortInfo信息
store.loadData(arr);
//GridPanel以后会讨论,这儿使用它是为了直观的表现GroupingStore
vargrid=newExt.grid.GridPanel(...{
ds:
store,
columns:
...{header:
name"
width:
20,sortable:
true,dataIndex:
occupation"
20,sortable:
true,dataIndex:
],
view:
newExt.grid.GroupingView(...{
forceFit:
groupTextTpl:
{text}({[values.rs.length]}{[values.rs.length>
1?
Items"
:
Item"
]})'
}),
frame.:
width:
700,
height:
450,
collapsible:
true,
animCollapse:
false,
title:
GroupingExample'
renderTo:
Div_GridPanel'
Ext.data.JsonStore
也是Store子类,目标是更方便的使用json对象做数据源
构造中多了fields,root,用法如下例所示
/**//*
这是使用远程对象,返回内容与下面本地对象的data一致
varstore=newExt.data.JsonStore({
url:
fields:
['
'
]
store.load();
*/
varstore=newExt.data.JsonStore(...{
data:
...{'
...{'
}
]},
autoLoad:
})
//目前请先略过gridpanel,以后再说
200,sortable:
200,sortable:
],height:
350,
620,
ArrayGrid'
Ext.data.SimpleStore
从数组对象更方便的创建Store对象,
例
varstore=newExt.data.JsonStore(...{
[
[1,'
[...{name:
1},...{name:
mapping:
2}]
EXT核心API详解Ext.data(十三)-Tree/Node
Ext.data.Tree
继承自Observable,用于存放树装的数据结构
方法
Tree([Noderoot])
以root为根构造Ext.data.Tree对象
getNodeById(Stringid):
Node
由指定id得到节点
getRootNode():
得到根节点,由属性root得到更方便
setRootNode(Nodenode):
设置根节点
事件有
append:
(Treetree,Nodeparent,Nodenode,Numberindex)
beforeappend:
(Treetree,Nodeparent,Nodenode)
beforeinsert:
(Treetree,Nodeparent,Nodenode,NoderefNode)
beforemove:
(Treetree,Nodenode,NodeoldParent,NodenewParent,Numberindex)
beforeremove:
insert:
move:
Ext.data.Node
节点
属性
attributes:
Object
节点属性集
childNodes:
子节点
firstChild:
第一个子节点
id:
String
id
lastChild:
最后一个子节点
nextSibling:
下一个兄弟节点
parentNode:
父节点
previousSibling:
前一个兄弟节点
Node(Objectattributes)
构造节点
appendChild(Node/Arraynode):
将node做为附加在当前节点的lastChild之后
bubble(Functionfn,[Objectscope],[Arrayargs]):
由当前节点开始一直上溯到根节点,对于每个节点应用fn,直到有一个fn返回假为止
cascade(Functionfn,[Objectscope],[Arrayargs]):
由当前节点开始一下对每个子孙节点应用fn.直到返回false为止
contains(Nodenode):
当前节点是node的祖先节点?
eachChild(Functionfn,[Objectscope],[Arrayargs]):
基本同cascade,但只针对子节点应用fn
findChild(Stringattribute,Mixedvalue):
在子节点中找到第一个有属性attribute值为value的节点
findChildBy(Functionfn,[Objectscope]):
在子节点中找到第一个应用fn返回真的节点
getDepth():
得到当前节点深度,