关于Toolbar动态添加按钮的问题
时间:2010-05-25
来源:互联网
我想在工具栏动态添加按钮,按钮信息来自后台数据库。
以下代码能通过编译,但并不能成功创建按钮,请问:错在哪里?
JScript code
--------------------
后台返回的Json如下:
"{'totalProperty':'3','result':[{'id': '1','text':'测试1'},{'id':'2','text':'测试2'},{'id':'4','text':'测试3'}]}"
-----------------------
现在的问题是,arrays数组中有三条记录存在。可是以下两行代码:
var o = { items: arrays };
Ext.apply(this, arrays);
并没有将值成功传入items项中。这错在哪里?该如何修改?谢谢!
以下代码能通过编译,但并不能成功创建按钮,请问:错在哪里?
JScript code
ToolBar = function() { Ext.Ajax.request({ url: 'rolegroup.aspx', params: '', method: 'POST', success: function(response, options) { //alert('success'); var rsp = Ext.util.JSON.decode(response.responseText); var total = rsp.totalProperty; //alert(total); //alert(rsp.result[0].text); var arrays = new Array(total); for (var i = 0; i < total; i++) { arrays[i] = new Ext.Button({ text: rsp.result[i].text, iconCls: 'icon-home' }); } //alert(arrays.length); //alert(arrays[1]['text'] + ',' + arrays[1]['iconCls']); var o = { items: arrays }; //Ext.apply(this, A, o); //不成功? Ext.apply(this, arrays); }, failure: function() { Ext.Msg.alert("提示信息", "按钮加载失败,请稍后重试!"); } }); ToolBar.superclass.constructor.call(this, { id: 'tool_bar', cls: 'top-toolbar' }) }; Ext.extend(ToolBar, Ext.Toolbar);
--------------------
后台返回的Json如下:
"{'totalProperty':'3','result':[{'id': '1','text':'测试1'},{'id':'2','text':'测试2'},{'id':'4','text':'测试3'}]}"
-----------------------
现在的问题是,arrays数组中有三条记录存在。可是以下两行代码:
var o = { items: arrays };
Ext.apply(this, arrays);
并没有将值成功传入items项中。这错在哪里?该如何修改?谢谢!
作者: WSJ741 发布时间: 2010-05-25
该回复于2010-05-27 12:37:51被版主删除
- 对我有用[0]
- 丢个板砖[0]
- 引用
- 举报
- 管理
- TOP
|
#2楼 得分:0回复于:2010-05-25 08:30:05
|
作者: hqs19821108 发布时间: 2010-05-25
问题解决了!我认为主要是ajax异步原因,
创建toolbar后,后台数据并没有读取。等读取后台数据后,再赋值就晚了。
我改了一下代码如下,就OK了!
JScript code
希望对大家有帮助!
创建toolbar后,后台数据并没有读取。等读取后台数据后,再赋值就晚了。
我改了一下代码如下,就OK了!
JScript code
SetToolButtons = function(tbr) { Ext.Ajax.request({ url: 'rolegroup.aspx', params: '', method: 'POST', success: function(response, options) { var rsp = Ext.util.JSON.decode(response.responseText); var total = rsp.totalProperty; var arrays = new Array(total); for (var i = 0; i < total; i++) { arrays[i] = new Ext.Toolbar.Button({ text: rsp.result[i].text, iconCls: 'icon-home' }); } tbr.add(arrays); tbr.addFill(); tbr.addButton( { text: '我的桌面', iconCls: 'icon-desktop', scope: this }); tbr.addSeparator(); tbr.addButton([ { text: '重新登录', iconCls: 'icon-user' }, { text: '退出系统', iconCls: 'icon-exit' }]); }, failure: function() { Ext.Msg.alert("提示信息", "按钮加载失败,请稍后重试!"); } }); }; Ext.onReady(function() { Ext.QuickTips.init(); var toolbar = new Ext.Toolbar({ id: 'tool_bar', cls: 'top-toolbar' }); SetToolButtons(toolbar); }
希望对大家有帮助!
作者: lw474580248 发布时间: 2010-05-25
呵呵,这种情况在ajax也是比较频繁出现的。
作者: WSJ741 发布时间: 2010-05-25
结贴给分啊,帅哥!
作者: IBM_hoojo 发布时间: 2010-05-25
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28