2011-06-12 76 views
0

我有兩列是orderbyborder鏈接。當我點擊一列時,我通過以下方式添加attributeModifier來更改列的顏色:如何在添加新的attributeModifier時刪除以前的attributeModifier?

add(new AttributeModifier("style", true, new Model<String>("background-color:#80b6ed;"))); 

這工作正常。但是當我點擊第二列時,第一列仍然是已更改的顏色。但我希望只有我點擊的列應該擁有這個屬性修改器!

回答

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;"; 
    } 
} 

當然,這也意味着當你創建它們,不要,你可以添加屬性修改每列」之後不必擔心。

+0

Thnx很多...我有這個想法來實現..bt你的答案給了我實現的方式.... thnx再次... – Samrat 2011-06-13 06:35:17

0

另一種方法來實現你想要的是通過Javascript添加一個css類到選定的行(從舊的刪除類)。

相關問題