开始对具体的知识投入最足够的关注,那就从今天的Ext开始吧
时间:2010-12-09 来源:四端
以下是今天查阅到的关于Ext的一些函数与应用:
1、对store的过滤,存在两种方式:
a) 用自定义函数过滤。filterBy(Function fn, [Object object]),Ext将每一条store中的记录作为参数对fn函数进行调用,如果fn返回该对象,则过滤得结果就会包括该记录。fn有两个参数,第一个是Record类型,第二个是记录的id。
b) 用字段值进行过滤。filter(string field,string/RegExp,bool anyMatch)。第二个参数如果是字符串,如果anyMatch为false,则匹配field字段里以第二个参数开始的记录,如果anyMatch,则匹配field字段里包含第二个参数的记录。也可以使用正则表达式进行匹配。
如果是多次过滤,反复应用过滤,应考虑在每次过滤前,调用store的clearFilter(bool suppress)移出过滤条件,恢复第一次过滤之前的状态。suppress为true,不通知相关的listener。
如果是ComboBox里的store进行过滤,一般放在expand事件里,但clearFilter应放在focus事件里,这样才能保证在记录被过滤完后,仍然可以完整的记录作为过滤的输入。
2、对grid里选择记录的获取
可通过grid.getSelectionModel().getSelections()获取Record数组,也可通过grid.getSelectionModel.getSelected()获取Record。
3、删除store中的数据
可通过store.remove(Record)删除一条记录,也可通过store.removeAll()删除所有数据。
4、each的使用
Ext.each(Array/NodeList/Mixed Array,function fun,Object scope),该函数的第一个参数是循环调用基于的循环类变量,第二个参数是循环过程中要执行的函数,其参数为有三,分别是Object item,Number index,array allItems。函数可通过返回false的方式停止循环调用,类似于break。
store.each(function fun),该函数循环调用基于的循环类变量是store,fun参数是Record。函数可通过返回false的方式停止循环调用,类似于break。
5、向store中添加一行记录
首先通过Ext.data.Create()创建一个记录的构造器,然后通过new 构造器({field1:'value1',field2:'value2'})的方式创建一条记录,最后通过store.add(Array records)函数将记录添加进store中。