Как получить выбранные строки таблицы Вудстока - PullRequest
0 голосов
/ 19 сентября 2008

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

Ответы [ 2 ]

1 голос
/ 19 сентября 2008

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

0 голосов
/ 13 августа 2010

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

Я добавил RadioButton в столбец таблицы в JSP и добавил значениеChangeListener

<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, но это работало, поэтому мне было все равно, чтобы найти другой способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...