Как получить выбранные строки таблицы Вудстока

У меня есть деревянный стол JSF с флажками. Когда строка выбрана, я хочу выполнить некоторую обработку с этими элементами. Мне удалось получить выборку объектов RowKey, но я не могу узнать, как вернуть исходные объекты, которые я вставил обратно. Таблица заполняется ObjectListDataProvider.

2 ответа

Всегда приятно иметь возможность ответить на свои вопросы. Мне удалось решить эту проблему путем приведения поставщика данных таблицы к ObjectListDataProvider и использования метода "getObject", чтобы вернуть мой исходный объект.

Так что я наткнулся на это и надеялся найти способ сделать выбор и получить информацию о строках. В конце концов я понял это, и я подумал, что другие могут извлечь выгоду из того, как я это сделал.

Я добавил RadioButton в столбец таблицы в JSP и добавил valueChangeListener

<ui:radioButton id="radioButton1" name="radioButton-group1" valueChangeListener="#{MyBeanPage.radioButton1_processValueChange}" />

В моем Java-коде я создал функцию valueChangeListener и сохранил информацию о текущей строке.

public void radioButton1_processValueChange(ValueChangeEvent event) {
  TableRowDataProvider trdp = (TableRowDataProvider)getValue("#{currentRow}");
  setCurrentRowKey(trdp.getTableRow());  //Sets an instance variable for the RowKey
}

Теперь, если у вас есть какие-либо кнопки, которые хотят манипулировать данными в выбранной строке, вы можете сделать это, чтобы получить данные объекта. Джаспер упомянул об этом выше.

/*getObjectListDataProviderImpl() returns the implementation of 
 *ObjectListDataProvider for your dynamic data.
 */
getObjectListDataProviderImpl().getObject(getCurrentRowKey()); 

Вы могли бы использовать что-то вроде атрибута selectedValue для переключателя в сочетании с чем-то другим вместо выполнения valueChangeListener и избегать необходимости выполнять функцию valueChange, но это работало, поэтому мне было все равно, чтобы найти другой способ.

Другие вопросы по тегам