Задача: изменять видимость колонок таблицы в в коде программы, в зависимости от некоторых условий.
- создаем HashMap отвечающий за отображение колонок в бине InOperationsB (область ViewScope). Инициализируем его в конструкторе, либо в момент первого использования
private HashMap viewColumns;
public InOperationsB() {
super();
if(viewColumns == null) {
viewColumns = new HashMap();
viewColumns.put("Payid",Boolean.TRUE);
}
...
}
- вешаем на форму кнопочку Test с обработчиком onTest() в InOperationsB
public void onTest(ActionEvent actionEvent) {
//-- сюда вставляем логику отображения, у меня просто "вкл-выкл"
Boolean b = (Boolean)viewColumns.get("Payid");
if(b != null) {
if( b.booleanValue()) {
viewColumns.put("Payid",Boolean.FALSE);
} else {
viewColumns.put("Payid",Boolean.TRUE);
}
}
//-- refresh table getVoImpl().executeQuery();
}
- правим свойство Visible у колонки в отображаемой таблице на EL выражение "#{viewScope.InOperationsB.viewColumns['Payid']}" где 'Payid' у меня имя атрибута в колонке(но это не суть важно)
- тестируем. По нажатию кнопки колонка то появляется, то исчезает
Комментариев нет:
Отправить комментарий