拦截器中的样式修改问题

joe_qlb 2007-03-16
我在行拦截器中使用row.setStyle("color:red;")设置当前行的颜色,在使用ecside后,然后继续使用extremeComponents的样式文件可以正确显示颜色,而使用ecside的样式后无法正确显示。
单步跟踪发现拦截器中的确已经将该行样式修改,估计是显示时,又被重新修改了样式。请问如何解决这个问题,或者有没有办法在显示时根据行的内容指定该行的颜色?
fins 2007-03-16
对于拦截器我一直没有使用 也没有修改过相关的代码 所以我也没有认真的测试过
我看看再回答你吧 可能是我的代码有问题
谢谢您提供的信息
fins 2007-03-17
麻烦你把拦截器的代码发上来看一下呗
你是在 拦截器的 modifyRowAttributes 里修改的样式吗??
如果不是请放到 modifyRowAttributes里
joe_qlb 2007-03-19
import org.ecside.bean.Row;
import org.ecside.core.TableModel;
import org.extremecomponents.table.interceptor.RowInterceptor;

public class LogInterceptor implements RowInterceptor {
final static String LOG_LEVEL_DEBUG = "Debug";
final static String LOG_LEVEL_INFO = "Info";
final static String LOG_LEVEL_WARN = "Warning";
final static String LOG_LEVEL_ERROR = "Error";
final static String LOG_LEVEL_FATAL = "Fatal";

public void addRowAttributes(TableModel model, Row row) {
}

public void modifyRowAttributes(TableModel model, Row row) {
Log log = (Log) model.getCurrentRowBean();

if (log.getLevel().equalsIgnoreCase(LOG_LEVEL_INFO)) {
row.setStyle("");
} else if (log.getLevel().equalsIgnoreCase(LOG_LEVEL_DEBUG)) {
row.setStyle("color:blue;");
} else if (log.getLevel().equalsIgnoreCase(LOG_LEVEL_WARN)) {
row.setStyle("color:orange;");
} else if (log.getLevel().equalsIgnoreCase(LOG_LEVEL_ERROR)) {
row.setStyle("color:red;");
} else if (log.getLevel().equalsIgnoreCase(LOG_LEVEL_FATAL)) {
row.setStyle("color:purple;");
} else {
row.setStyle("color:yello");
}
}

}
fins 2007-03-19
哦 我知道了
这里你需要使用 styleClass

你要把 那些颜色信息提炼成 样式的class

然后再使用.
Global site tag (gtag.js) - Google Analytics