這個功能下個版本就會支持,我這裏先爆下,因爲有童鞋問到,easyui 有提供style設置的.這個是我們的基本前提
後面就是我們的修改:
首先我們先在這個類DataGridColumnTag 裏面添加一個屬性
-
protected String style; //Td的CSS
複製代碼
然後這個他的set方法,get就不用了,之後
-
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;
-
}
複製代碼
這裏面加入我們添加的style,下一步,我們去DataGridTag這個tag大類裏面去添加
-
protected List<ColumnValue> columnStyleList = new ArrayList<ColumnValue>();// css替換集合
複製代碼
這個這樣我們把我們先放入的值存放到columnStyleList裏面,再回到上面提到的public void setColumn()
這個方法,添加
-
dateGridColumn.setStyle(style);//這個是必須的,不然怎麼設置啊,對不
複製代碼
-
if(StringUtil.isNotEmpty(style)){
-
String[] test = style.split(",");
-
String text = "";
-
String value = "";
-
for (String string : test) {
-
text += string.substring(0, string.indexOf("_")) + ",";
-
value += string.substring(string.indexOf("_") + 1) + ",";
-
}
-
<b> setStyleColumn(field, text, value);</b>
-
}
複製代碼
再新增這個方法
-
/**
-
* 設置CSS換值
-
* @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);
-
}
複製代碼
這樣我們就把前臺穿過來的css值存放起來了,下面只需要在最後的向前臺輸入裏面添加就可以了
還有記得要添加清除哈
-
public int doStartTag() throws JspTagException {
-
// 清空資源
-
urlList.clear();
-
toolBarList.clear();
-
columnValueList.clear();
-
columnStyleList.clear();
-
columnList.clear();
-
fields = "";
-
searchFields = "";
-
return EVAL_PAGE;
-
}
-
複製代碼
繼續我們的,接下來我們找這個方法
-
/**
-
* 拼接字段
-
*
-
* @param sb
-
* @frozen 0 冰凍列 1 普通列
-
*/
-
protected void getField(StringBuffer sb,int frozen) {
複製代碼
這個方法就是拼裝字段的,也就是現實字段的屬性
我們在這個方法裏面添加我們的style字段---在值替換的下面
-
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(",<b>styler:function</b>(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("}");
-
}
-
}
-
-
}
複製代碼
注意上面的加粗字體,這個就是easyui的方法,進行是style設置
好了到此就大功告成了後臺只有在easyui.tld裏面的DataGridColumnTag添加我們新增的屬性
-
<attribute>
-
<name>style</name>
-
<required>false</required>
-
<rtexprvalue>true</rtexprvalue>
-
<description>td CSS 屬性</description>
-
</attribute>
複製代碼
c再重啓下tomcat就可以使用了
-
<t:dgCol title="jueyue" field="jueyue" replace="是_Y,否_N" style="background:red;_N" ></t:dgCol>
複製代碼
下面展示下效果吧 <ignore_js_op style="word-wrap: break-word; color: rgb(68, 68, 68); font-family: Tahoma, Helvetica, SimSun, sans-serif;"> 就變成紅色了
到此結束,第一次寫這麼多....
補充說明:
-
<t:dgCol title="jueyue" field="jueyue" replace="是_Y,否_N" style="background:red;_N" ></t:dgCol>其中_N中的N爲value值,如果無值或者其他值,可以寫成_.