jQuery MiniUI

标题: 如何根据后台传递的值动态显示/隐藏datagrid中的列 [打印本页]

作者: Micro    时间: 2013-8-28 13:24:48     标题: 如何根据后台传递的值动态显示/隐藏datagrid中的列

我需要根据后台传递的值,前台动态的显示列,例如:,后台传递了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");
            }
        });


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

作者: felt    时间: 2013-8-28 14:13:40

grid.hideColumn(column)
grid.updateColumn(column,{visible:false})
这2种方法应该都可以的。
作者: Micro    时间: 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 字段却是存在的,求教?这是怎么回事?
作者: factory    时间: 2013-8-29 11:00:36

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

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




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2