RichFaces 4 DataTable rich: проблема стиля столбца
Я переношу приложения jboss seam, richfaces 3.x и jsf 1.x на jboss seam 2.3 и richfaces 4 и jsf 2.x. У меня есть rich:dataTable, который отображает некоторые данные, стилизация столбца оценивается с помощью выражения значения, которое при первой загрузке работает. Мое требование заключается в том, что всякий раз, когда я щелкаю по строке, происходит вызов метода вспомогательного компонента, который устанавливает выбранный объект строки, выбранный и по завершении ajax, я снова визуализирую таблицу, но классы не применяются к выбранной строке или которая была нажата. У меня есть классы, определенные в файле CSS, включенные в теги.
My view Code goes here:
<rich:dataTable id="table" value="#{backingBean.getRows()}" var ="top" onrowClick="#{rich:element('rowClickButton')}.click();">
<rich:column styleClass="#{top.selected ? 'selected':'unselected'>
<a4j:commandButton id="rowClickButton" style="display:none" render="#{top.selected ? 'table':null} action ="#{bean.setRowclicked(top)}"/>
<h:outputText value="First Column"/>
</rich:column>
<rich:column styleClass="#{top.selected ? 'selected' : 'unselected'>
<h:outputText value="Second Column"/>
</rich:column>
My Backing Bean goes here
public class BackingBean(){
public List<Rows> getRows(){
List<Rows> rows = new ArrayList<Rows>();
rows.add(row1);
rows.add(row2);
return rows ;
}
public void setRowClicked(top){
top.selected(true);
}
}
PS: я использую подход создания кнопки и скрытия ее внутри столбца, потому что rowClick на a4j: ajax не работает, и мне нужно, чтобы объект 'top' был передан компоненту поддержки, любая оптимизация или лучший подход к этому также очень ценится и приветствуется.