jQuery MiniUI

 找回密码
 立即注册
查看: 2255|回复: 3
打印 上一主题 下一主题

如何根据后台传递的值动态显示/隐藏datagrid中的列 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2013-8-28 13:24:48 |只看该作者 |倒序浏览
我需要根据后台传递的值,前台动态的显示列,例如:,后台传递了TestRole的值为0,那么前台在加载datagrid时,根据TestRole
的值,自动的隐藏某一列。

后台代码:
result["TestRole"] = right;//0表示没有【新增项目】权限,1表示有 TestRole
   //JSON
   String json = DataManage.JSON.Encode(result);
    Response.Write(json);


Js代码:
grid.load(null,function(e){//权限控制
            var str = e.result.TestRole;
            if(str==0)
            {
                var str=false
                e.sender.columns[6].visible=false; //方法一:隐藏该列
                e.source._ColumnMove.grid.hideColumn("cswtgs");方法二
            }
            else
            {
                alert("111");
            }
        });


补充:上述方法均没有起作用。求解?该如何在加载时隐藏列表?

Rank: 8Rank: 8

沙发
发表于 2013-8-28 14:13:40 |只看该作者
grid.hideColumn(column)
grid.updateColumn(column,{visible:false})
这2种方法应该都可以的。

Rank: 1

板凳
发表于 2013-8-29 09:51:09 |只看该作者
felt 发表于 2013-8-28 14:13
grid.hideColumn(column)
grid.updateColumn(column,{visible:false})
这2种方法应该都可以的。 ...

额。。。版主大大,是这样的,显示/隐藏是在grid.load()事件发生时处理的,这个时候,grid还没有生成,grid.showColumn()也就不起作用了。。。
另外,不知道这是不是BUG,在grid.load() 边,e.sender.columns[6].visible=false; 项目发布后,访问页面时,其中column 字段是不存在的。奇怪的是,本地运行项目的话,访问该页面,column 字段却是存在的,求教?这是怎么回事?

Rank: 8Rank: 8

地板
发表于 2013-8-29 11:00:36 |只看该作者
Micro 发表于 2013-8-29 09:51
额。。。版主大大,是这样的,显示/隐藏是在grid.load()事件发生时处理的,这个时候,grid还没有生成,gr ...

隐藏不等于删除。
如果是动态生成的表格,可以自己在生成列的时候,去设置列的visible属性

Archiver|普加软件

GMT+8, 2024-11-29 19:56 , Processed in 1.078465 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部