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>