我有两列是orderbyborder链接。当我点击一列时,我通过以下方式添加attributeModifier来改变列的颜色
add(new AttributeModifier("style", true, new Model<String>("background-color:#80b6ed;")));
这很好用。但是当我点击第二列时,第一列仍然是更改的颜色。但我希望只有我点击的列才能保存此属性修改器!
答案 0 :(得分:4)
您不应更改修改器。
诀窍是让你的模型返回正确的值。因此,不是使用总是返回相同常量值的new Model<String>("background-color:#80b6ed;")
,而是使用类似的东西:
new Model<String>() {
@Override
public String getObject() {
if( columnName.equals( selectedColumn ) { //or something along these lines, to check if the current column is the selected one
return "background-color:#80b6ed;";
}
return "background-color:white;";
}
}
当然,这也意味着您可以在创建属性修改器时为每个列添加属性修改器,以后不必担心它们。
答案 1 :(得分:0)
实现你想要的另一种方法是通过Javascript(从旧的类中删除类)将css类添加到选定的行。