ext.data.store 里面的数据来源可不可以是某javascript函数执行后的结果?

p2227 2011-04-24 11:38:20
我进行过一些测试,但是没成功,求成功的例子

以下是我不成功的例子

//包含一些必要的文件
f_makeArry = function(s,e){
//s<e
var a = new Array();
for(var i=s;i<=e;i++){
a[i-s]=i;
}
return a;
};
//alert(f_makeArry(2,5)) //2,3,4,5

var numStore = new Ext.data.ArrayStore({
storeId: "numStore",
field: ["num"],
//data: eval("[" + Kext.form.f_makeArry(2, 33) +"]")
data:Kext.form.f_makeArry(2, 33)
});

...全文
63 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
p2227 2011-04-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 likeajin 的回复:]

提示:数组数据源的数据应该是一个二维数组
JScript code

f_makeArry = function(s,e){
//s<e
var a = [];
for(var i=s;i<=e;i++){
a[i-s]=[i];
//a[i-s]=i;
}
return a;
};


试试
[/Quote]函数的返回值是2维数据,但还是不能作为store的数据来源
likeajin 2011-04-24
  • 打赏
  • 举报
回复
提示:数组数据源的数据应该是一个二维数组

f_makeArry = function(s,e){
//s<e
var a = [];
for(var i=s;i<=e;i++){
a[i-s]=[i];
//a[i-s]=i;
}
return a;
};

试试
p2227 2011-04-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 t5500 的回复:]

JScript code
//这样试试
d = Kext.form.f_makeArry(2,33);

var numStore = new Ext.data.ArrayStore({
storeId: "numStore",
field: ["num"],
//data: eval("[" + Kext.form.f_makeArry(2, 33) +"]")
……
[/Quote]也是不行的,我从firebug里面看Ext.StoreMgr可以看到这个store并没有任何数据
乌镇程序员 2011-04-24
  • 打赏
  • 举报
回复
//这样试试
d = Kext.form.f_makeArry(2,33);

var numStore = new Ext.data.ArrayStore({
storeId: "numStore",
field: ["num"],
//data: eval("[" + Kext.form.f_makeArry(2, 33) +"]")
data:d
});
p2227 2011-04-24
  • 打赏
  • 举报
回复
谢谢likeajin的提醒,这里附带一个JsonStore的例子,测试成功的,T5500的方法是无必要的,但也感谢

f_makeOjbect = function (s, e) {
var a = [];
for (var i = s; i <= e; i++) {
a[i - s] = {"name":"name"+i,"value":i};
}
return a;
};

var numStore = new Ext.data.JsonStore({
storeId: "numStore",
fields: ["name","value"],
data: f_makeOjbect(2, 33)//之前粘贴多了的“Kext.form”是我工程里面的一个命名空间,忽视即可
});

likeajin 2011-04-24
  • 打赏
  • 举报
回复
应该是fields而不是field

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧