dgcol更改样式
在最新版已经支持了,建议大家还是下载架包使用,容易升级,源码可以用来学习不,要是改了源码,升级就不好搞了首先在这个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 + "'){return \'" + text + "\'}";
}
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,不想区分,就不好搞了
这个网友来设计吧
页:
[1]