① 在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); //获取具有唯一元素的新数组
})