① 在extjs4中如何獲取tree的json數據
var store = Ext.create('Ext.data.TreeStore', {
model: 'Demo',
proxy: {
type: 'ajax',
url: 'tree.json' //後台json
},
});
前台說白了和後台沒多大關系,它只需要 一串json數組(或者xml),不管你用的什麼後台。
② 如何遍歷一個JS對象中的所有屬性
直接用js裡面自帶的for..in就可以實現了。
varo={a:1,b:2,c:3,d:4};
for(varnameino){
console.log(name+':'+o[name]);
}
這樣就可以把o對象裡面的所以屬性專都遍屬歷一遍了。
③ extjs遍歷json數組
varjsonstr="未知...";
varjsondata=eval('('+jsonstr+')');
for(varpinjsondata){
console.log(p+":"+jsondata[p]);
}
④ Extjs中如何遍歷grid的數據(正在顯示的數據)
「也就是說顯示在grid的中的數據並不一定是store的數據」這句話是錯誤的!
你用store載入的數據,是經過Record解析的,也就是說,store裝的就是record解析完的數組,而數組里的對象就是你record解析的對象。而你所說的,只是通過renderer方法,把store中的數據renderer後展現在grid上,而這個renderer是屬於ColumnModel的,它只是用來做grid上的顯示,而真正記錄的數據只有sotre!
解決這個有兩種方式:
1.你sotre載入數據之前,把該對象數組重新組織,組織成你真正想要的數據後再load!
2.遍歷store的record記錄,在遍歷到你經過處理的dataIndex時,在按你的處理方式處理遍數據即可!
for(var i=0,len=store.data.length;i<len;i++){
var data = store.getAt(i).data;//data就是對應record的一個一個的對象
data.dataIndex //獲取的就是該對象dataIndex屬性對應的值
.........
}
這兩種說白了就是你真實想要什麼記錄的對象,要麼在sotre之前組織,要麼在遍歷之後組織!總之store所load的數據會一直被store持有著,你不remove也不reload,他就不會變!
⑤ extjs中怎樣獲取grid中的所有行
var records = this.selModel.getSelections();
records是一個數組,比如
if (records.length < 1) {
Ext.MessageBox.alert("提示", "請選中一個選項!");
return;
}可以判斷grid裡面的數專據有沒有任意屬一個被選中
⑥ EXTjs 怎樣遍歷樹的所有節點獲取節點下的值
//tree 是個Ext.tree.TreePanel對象
var roonodes = tree.getRootNode().childNodes; //獲取主節點
findchildnode(roonodes); //開始遞歸
function findchildnode(node){
var childnodes = node.childNodes;
for(var i=0;i<childnodes.length;i++){ //從節點中取出子節點依次遍歷
var rootnode = roonodes[i];
alert(rootnode.text);
if(rootnode.childNodes.length>0){ //判斷子節點下是否存在子節點
findchildnode(rootnode); //如果存在子節點 遞歸
}
}
}
⑦ Extjs怎麼取出資料庫中的內容放到數組中
Ext.Ajax.request({
url:url,
method:'GET',
success:function(resp){
vardata=Ext.decode(resp.responseText);
}
});
⑧ extjs中數組的問題
F12調出控制台,使用console.log將兩個數組分別列印在控制台,然後看兩個數組是專不是一樣,有屬可能一個是數組object,而另一個被自動轉換成字元串(或其中元素被轉)。這樣你能一目瞭然的找出問題所在
⑨ Extjs 數組怎麼自定義,並且賦值
Extjs 數組定義使用Ext.Array內置函數。
extjs4.0 Ext.Array 函數方法大全:
Ext.onReady(function(){
var array = ['1','2','3','4','1','6','7'];
Ext.Array.clean(array); //['1','2','3','4','6','7'];
Ext.Array.clone(array); // 克隆數組
Ext.Array.contains(array,'1'); //返回true 檢查數組內是否包含指定元素
var array2 = ['1','2','3','4','5','6'];
Ext.Array.difference(array,array2); //返回 存在於 array中而不存在array2中的元素 ['','7']
Ext.Array.every(array,function(str,index,array){ //遍歷數組 第二個參數執行回調函數 (當前元素,當前索引,當前數組(array)) 指定作用域 返回false 立即返回
//alert(str);
return true;
});
Ext.Array.filter(array,function(str,index,array){ //遍歷數組 第二個參數執行回調函數 (當前元素,當前索引,當前數組(array)) 指定作用域 返回值: 返回true的元素組成新數組
//alert(str);
return true;
});
var array3 = ['1','2','3','4',['1','2','3'],'6','7'];
Ext.Array.flatten(array3); //返回值:將多維數組 平鋪成一維數組
Ext.Array.forEach(array,function(str,index,array){ //單純的遍歷數組
//alert(str);
});
Ext.Array.from(array,true); //轉換給定值為數組 如果為undefined 或 null 則返回空數組 本身為數組返回數組 可迭代返回數組拷貝 單值返回值包含該值的數組
Ext.Array.include(array,'100'); //向array末尾插入100 前提是array中不存在為100的值
Ext.Array.indexOf(array,'100',0); //在數組內尋找指定值 第三個參數為起始位置 返回值:所在位置
alert(Ext.Array.intersect([array,array2])); //合並多個數組 數組元素唯一
Ext.Array.map(array,function(str,index,array){ //根據返回值組成數組
return str;
});
Ext.Array.max(array,function(s1,s2){ //返回數組中最大值 使用比較函數時返回值為負數時 小 0為相等 正數為大
return 0;
});
Ext.Array.mean([1,2,3,4,5]); //返回平均值
Ext.Array.min(array,function(s1,s2){ //返回數組中最小值 可使用比較函數
return 0;
});
var array4 = [{'a1':'a1'},{'a1':'a2'},{'a3':'a3'}];
Ext.Array.pluck(array4,'a1'); //在數組json數據中查找鍵為a1的值返回數組 (不改變數組大小)
Ext.Array.remove(array,'1'); //刪除數組中指定元素 注意:只刪除一項
Ext.Array.some(array,function(s1,s2){ //遍歷數組 返回true立即返回
return false;
});
var array5=['s','a','z','c'];
Ext.Array.sort(array5); //排序數組 默認以字元排序 可選排序函數
var array6=[1,2,3,4,5];
Ext.Array.sum(array6); //求和
Ext.Array.toArray(array6,2,4); //轉換任何可迭代的值為數組 參數 1 iterable 2 start 3 end
Ext.Array.merge(array,array6); //組合數組
Ext.Array.unique(array,array6); //組合數組 merge的別名
Ext.Array.unique(array); //獲取具有唯一元素的新數組
})