主题 :查询结果列表中正确显示带格式的字段
级别:项目经理
积分:12023
关注  私信
精华:1  主题:16  回复:24
注册时间:2015-04-03
在线时长:38.62 h
  发表于:2015-07-22 11:04:50  IP:122.135.*.*
1#
以工作日志举例,在结果列表中显示【日志内容】字段的话,格式混乱了(见下图)。请教下有无简单易行的解决方案。毕竟部门经理要查看某员工一段时间内的工作内容,挨个双击点开弹出窗口查看有点儿费劲了。
引用     回复     举报 
级别:版主
积分:572
关注  私信
精华:3  主题:57  回复:95
注册时间:2015-03-03
在线时长:578.17 h
  发表于:2015-07-22 11:37:53  IP:122.135.*.*
2#
第一种方法,设置行的高度,不过这样每行的高度都是相同的,但是内容却或多或少,可能不太好看。
SysGrid bg =new SysGrid(request);
bg.setRowHeight(100);

第二种方法,替换“日志内容”列的显示方式,SysGrid可以自由的扩展每列的展现形式,使用方式:
sccList.add(new SysColumnControl("hrmEmployeeSex", "性别", 1, 2, 1, 0));
ArrayList colList = UtilTool.getGridColumnList(sccList);
//进行高级查询显示处理
for (int i = 0; i < colList.size(); i++) {
SysGridColumnBean bc = colList.get(i);
if (bc.isShowAdvanced() || bc.isShowColumn()) {
if ("hrmEmployeeSex".equalsIgnoreCase(bc.getDataName())) {
SelectType select = new SelectType(EnumUtil.HRM_EMPLOYEE_SEX.getSelectAndText("-1,-请选择人员性别-"));
select.setCustomerFunction(new String[] { "onchange=\"queryData();\"" });
bc.setColumnTypeClass(select);
bc.setColumnReplace("repSex");//关键在这里,设置列的替换方法,然后在js代码中定义该方法
bc.setColumnStyle("text-align:center;");
...
列显示替换方法,自动绑定该行记录对象,可以在里面做很多操作
function repSex(rowObj){

//可以处理运算
var str="";
if(rowObj.hrmEmployeeSex == 1){
str= "男"
}else{
str= "女"
}
return str;

//可以拼接字符串,例如替换为A标签
var str = ""+rowObj.name+"";
//上面的id、name都是rowObj对象的属性名,也就是对应java对象的属性名
return str;

//针对你的问题可以这样做
var str = "简要内容,鼠标移上去,查看工作全部内容
内容在这里,初始化话的时候隐藏的
"
return str;
}

function showContent(obj){
//把span标签后面的第一个div里的内容显示出来。
//大概就是这个思路,你可以使用其他js效果,让显示的更加完美。
}
引用     回复     举报 
匿名
  发表于:2016-06-05 22:44:17  IP:122.165.*.*
3#
O(∩_∩)O哈哈~,沙发是我的啦O(∩_∩)O
引用     回复     举报