EXT.JS 学习笔记

本文围绕Ext框架展开,介绍了store模块的数据加载、过滤等操作,如loadData读取数据,filter和filterBy过滤数据;还阐述了grid模块的对象获取、选中行处理、首次加载调用函数及清空排序等内容;最后给出了重写ext tree双击事件的代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

store.loadData()

loadData(object data, [Boolean append])从本地JavaScript变量中读取数据,append为true时,将读取的数据附加到原数据后,否则执行整体更新,如下面的代码所示。 
1.   store.loadData(data, true); 

store. Filter();

为store加载数据之后,有时不需要把所有数据都显示出来,这时可以使用函数filter和filterBy对store中的数据进行过滤,只显示符合条件的部分,如下面的代码所示。 
1.   filter( String field, String/RegExp value, [Boolean anyMatch], [Boolean caseSensitive] ) : void  

filter()函数的用法与之前谈到的find()相似,如下面的代码所示。 
1.   store.filter(‘name’, ‘boy’);  

对应的filterBy()与findBy()类似,也可以在自定义的函数中实现各种复杂判断,如下面的代码所示。

 

  store.filterBy(function(record) {   
      return record.get('name') == 'girl' && record.get('sex') == 1;  
 });  123

如果想取消过滤并显示所有数据,那么可以调用clearFilter()函数,如下面的代码所示。 
1.   store.clearFilter();  

如果想知道store上是否设置了过滤器,可以通过isFiltered()函数进行判断。
 

grid模块:

获取grid 对象:

var grid = Ext.getCmp("DisciplinaryActionGrid");

    var sm = grid.getSelectionModel(); //当前被选中的对象

sm.hasSelection()  // boolen值,true等于有被选中的行,反之FALSE

sm.lastActive //当前被选中的行数,从0开始

Var selectRows = grid.getSelectionModel().getSelections();

selectRows[0].get(“gird中某列的dataIndex属性值”)        //取选中行记录的某列的值,实际值

 

(3)grid.selModel.selections.items;              //得到选择所有行

 

(4)grid.getSelectionModel().getSelected();      //得到选择行的第一行


    var view = grid.getView();//grid 外在表现,非实际值表现,经过处理后显示的

getCell(3,3).outerText; 获得第四行第四列的表现值

var mygrid = Ext.GridPanel({....});
var total = mygrid.getStrore().getCount();//数据行数
for(var i=0;i<total;i++){
alert(mygrid.getStrore().getAt(i))//每行records对象
//alert(mygrid.getStrore().getAt(i).data['abc'])//对应每行dataIndex为abc的值
}

grid 第一次加载时调用指定函数

Ext.onReady(function() {
        var firstload = true;
        var pgrid = Ext.getCmp("TrainingInfoGrid");
        var dstore = pgrid.getStore();
        dstore.on({
            load : {
                fn : function() {
                    if (firstload) {
                        $h.selectGridRow('TrainingInfoGrid', 0);
                        firstload = false;
                    }
                }
            },
            scope : this
        });
        
    });

//清空列表排序

    var grid = Ext.getCmp('peopleInfoGrid');
    var store = grid.getStore();
    var sortInfo = store.sortInfo;
    store.sortInfo = null;
    $(".sort-asc").removeClass("sort-asc");
    $(".sort-desc").removeClass("sort-desc");

Tree:

<!-- 重写ext tree 的双击事件,并不触发展开  -->
<script type="text/javascript">
Ext.override(Ext.tree.TreeNodeUI, {
    onDblClick : function(e) {
        e.preventDefault();
        if (this.disabled) {
            return;
        }
        if (this.checkbox) {
            this.toggleCheck();
        }
        if (!this.animating && this.node.hasChildNodes()) {
            var isExpand = this.node.ownerTree.doubleClickExpand;
            if (isExpand) {
                this.node.toggle();
            }
            ;
        }
        this.fireEvent("dblclick", this.node, e);
    }
});

</script>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值