关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、3102411850 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 8291|回复: 0

dgcol更改样式

[复制链接]
发表于 2013-8-27 23:40:25 | 显示全部楼层 |阅读模式
在最新版已经支持了,建议大家还是下载架包使用,容易升级,源码可以用来学习不,要是改了源码,升级就不好搞了

首先在这个DataGridColumnTag 加入我们需要的属性protected String style; //Td的CSS
给他一个set方法,然后在这个endTag,给添加到父类中去
  1. public int doEndTag() throws JspTagException {
  2.                 Tag t = findAncestorWithClass(this, DataGridTag.class);
  3.                 DataGridTag parent = (DataGridTag) t;
  4.                 parent.setColumn(title,field,width,rowspan,colspan,align,sortable,checkbox,formatter,hidden,replace,treefield,image,query,url,funname,arg,queryMode, dictionary,frozenColumn,extend,style);
  5.                 return EVAL_PAGE;
  6.         }
复制代码
在parent,setColumn方法中添加
  1. dateGridColumn.setStyle(style);
复制代码
  1. /**
  2.          * 设置 颜色替换值
  3.          * @param field
  4.          * @param text
  5.          * @param value
  6.          */
  7.         private void setStyleColumn(String field, String text, String value) {
  8.                 ColumnValue columnValue = new ColumnValue();
  9.                 columnValue.setName(field);
  10.                 columnValue.setText(text);
  11.                 columnValue.setValue(value);
  12.                 columnStyleList.add(columnValue);
  13.         }
复制代码
哦,对了在这个类里面,添加protected List<ColumnValue> columnStyleList = new ArrayList<ColumnValue>();// 颜色替换集合
不然没有地方加不,嘿嘿,然后在这个方法中
  1. protected void getField(StringBuffer sb,int frozen) {}
复制代码
  1. // 背景设置
  2.                         if (columnStyleList.size() > 0 && !column.getField().equals("opt")) {
  3.                                 String testString = "";
  4.                                 for (ColumnValue columnValue : columnStyleList) {
  5.                                         if (columnValue.getName().equals(column.getField())) {
  6.                                                 String[] value = columnValue.getValue().split(",");
  7.                                                 String[] text = columnValue.getText().split(",");
  8.                                                 sb.append(",styler:function(value,rec,index){");
  9.                                                 for (int j = 0; j < value.length; j++) {
  10.                                                         testString += "if(value=='" + value[j] + "'){return \'" + text[j] + "\'}";
  11.                                                 }
  12.                                                 sb.append(testString);
  13.                                                 sb.append("else{return value}");
  14.                                                 sb.append("}");
  15.                                         }
  16.                                 }
  17.                                
  18.                         }
复制代码
就可以了,记得别忘记了在 doStartTag()这个方法里面columnStyleList.clear();清除
还有在tld文件中添加我们的字段属性
  1. <attribute>
  2.    <name>style</name>
  3.    <required>false</required>
  4.    <rtexprvalue>true</rtexprvalue>
  5.    <description>td CSS 属性</description>
  6.   </attribute>
复制代码
style="background:red;_N"  这样就想值替换哪有就可以使用了,这里突然想起个bug,不想区分,就不好搞了
这个网友来设计吧



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表