小弟我初学Ext,最近用Ext开发了个小项目,但是当不同用户角色登录进去的时候某些按钮要hidden掉这个应该怎么做呢?
上网查了下都说可以用后台返回的角色来判断,
我的做法开始也是这样的,登录成功后我也获取到了后台返回的角色,但是因为现在还没有加载登录成功进入的那个界面没法获得按钮所以不能隐藏所要隐藏的按钮,代码如下:
form1.getForm().submit({
url:'login.action', method : 'get',
success : function(form, action) {
user=action.result.username;
if(user=='admin'){
Ext.get('detail').hide();
................... win.close();
window.location = "mainview.jsp";
},
failure : function(form, action) {
Ext.Msg.alert("出错啦",action.result.msg);
form1.form.reset();
document.getElementById("randcodeimg").src ="../pages/img.jsp?nocache="+new Date().getTime();
}
那位大哥大姐帮我看下到底应该怎么来做啊?最好有个小例子,小弟在此先谢谢了!
在最外面定义一些属性例如
var flag = 后台java传递过来的是否隐藏的值(例如是true);
然后你在你的按钮就可以这样来写了
[code="js"]var button = new Ext.Button({
hidden:flag,
text:'submit'
}):[/code]
这样你就可以通过后台传递的参数来设置前台extjs按钮是否隐藏了
你这里遇到的是渲染的问题,Ext的任何组件都只有执行了render方法之后才能渲染到页面上,最简单的方式是对需要隐藏的render事件进行监听,例如:panel.on('render',function(){
//在这里对panel的子组件进行隐藏
})