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