如何根据用户级别格式化单元格内容
thedayofdays 发布于6月前 9答/294阅

我的原始需求是:
根据不用的用户单元格显示的内容格式不同

实现过程中遇到的问题:
条件不知如何获取

我觉得这个问题的原因是:


function(value, row, index, field) { 

//${user.role.lv}

if(怎么获取用户级别条件){

return '<b style="color:red">' + row.value + '</b>';

}else{

return '<b style="color:blue">' + row.value + '</b>';

}

}


[沙发] 扫地僧
@thedayofdays   再提供一种方法  添加一个action  用来返回当前登陆得用户 对应得condition , 在格式化器中  通过ajax  来获取  在进行判断
最佳
[地板] 扫地僧
@thedayofdays   格式化器中  $ 符号和jquery中得$ 符号冲突   这种用法可以使用到  表达式和默认值中  要实现你的需求  还是得添加拦截器  给每条数据添加 MyCondition 属性  这样  在格式化器中 就可以使用  row.MyCondition  来获取这个值   在做 后续得事情
亮点
[地毯] 雷诺娃
@thedayofdays 仙人模式の表达式强化技能里,“如何使用其它非用户数据,比如我的部门,我的公司,我的店铺....”loginInit方法里增加你要的级别应该就能行。
[4楼] thedayofdays
@雷诺娃 过滤条件中加可以,在格式化器中如何用呢
[5楼] 雷诺娃
@thedayofdays 	// com.oss.OSSController

@Override
protected void loginInit(Controller ctrl, User user) throws Exception {
super.loginInit(ctrl, user);

// 添加自定义业务信息到当前用户中
公司 company = Db.获取我的公司(user.id);
if (company != null) {
user.put("company", company);
// 表达式里调用公司信息 ${user.company.name}
}
}
[6楼] 扫地僧
@thedayofdays  如果是列表显示  每一行都不一样的话  建议添加一个虚拟字段  在queryAfter中格式化数据  如果是统一显示的话  可以参照楼上老哥的方法
[7楼] thedayofdays
@雷诺娃 @Override
protected void loginInit(Controller ctrl, User user) throws Exception {
super.loginInit(ctrl, user);

// 添加自定义业务信息到当前用户中
user.put("MyCondition", "3");/*test*/
}



/*格式化器中*/
function(value, row, index, field) {

//parseInt(${user.MyCondition})

if(${user.MyCondition}>1){

return '<b style="color:red">' + row.value + '</b>';

}else{

return '<b style="color:blue">' + row.value + '</b>';

}

}

${user.MyCondition}或者parseInt(${user.MyCondition}) 这样表格直接就不显示了,是哪里写的不对么
[8楼] 雷诺娃
@thedayofdays 感觉扫地僧的增加虚拟字段方案更简单点
[9楼] thedayofdays
最终解决方案是在 $(document).ready(function(){}中通过ajax获取条件实现的
提交评论