gdfloyd 2009-08-11 17:52
浏览 230
已采纳

需要一个Ext组件,能根据请求后台的URL动态生成的菜单

在Ext里实例化一个菜单:

 

var menu = new Ext.menu.Menu({
    items:[{
        text:'菜单项'
    }]
});

 像上面的写法就写死在JS里面了,需要根据URL动态读取生成菜单~~~~

 请给出Ext扩展组件代码哦


问题补充:
监听什么事件,怎个写法?
问题补充:
我的意思是菜单的子项动态加载,不是菜单的子项的子菜单动态加载
即菜单new的时候,传个url就能生成了
问题补充:
ajax异步加载第一次是没有
问题补充:

var menu = new Ext.menu.Menu({

listeners: {

'beforerender': function (m) {

Ext.Ajax.request({

url: 'http://localhost:8080/autotollhrms/servlet/MenuServlet',

success: function (response, opts) {

//var menuArr = Ext.decode(response.responseText).data;

for (var i = 0; i < 10; i++) {

m.add({

text: 'Aero Glass',

checked: true,

group: 'theme'

});

}

}

});

}

}
});

var panel = new Ext.Panel({
html:'ttttttttttt',
bbar:[{text:'test',menu:menu}],
renderTo:'test'
});



由于ajax异步加载,
第一次加载如果菜单子项比较多,把10改大一点,就不显示了~~~
已经有方法解决了:
http://www.lubber.de/extjs/storemenu/
还是谢了
  • 写回答

6条回答 默认 最新

  • iteye_10013 2009-08-11 21:07
    关注

    测试代码如下

    第一次点击的时候menu的位置不对,你可以自己修改下
    [code="javascript"]
    var menu = new Ext.menu.Menu({
    listeners: {
    'beforerender': function (m) {
    Ext.Ajax.request({
    url: 'json.txt',
    success: function (response, opts) {
    var menuArr = Ext.decode(response.responseText).data;
    for (var i = 0; i < menuArr.length; i++) {
    m.add(menuArr[i])
    //console.log(menuArr[i])
    }
    },
    params: {
    tz: 'tz'
    }
    });
    }
    }
    })[/code]

    测试的json:

    [code="javascript"]
    {
    data:[
    'Choose a Theme',
    {
    text: 'Aero Glass',
    checked: true,
    group: 'theme'
    }, {
    text: 'Vista Black',
    checked: false,
    group: 'theme'
    }, {
    text: 'Gray Theme',
    checked: false,
    group: 'theme'
    }
    ]
    }[/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(5条)

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置