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>