如何检索伍德斯托克表的选定行

时间:2020-03-06 14:25:20  来源:igfitidea点击:

我有一个带有复选框的JSF伍德斯托克表。选择一行后,我想对这些项目进行一些处理。我设法获得了RowKey对象的选择,但是找不到如何获取放回原始对象的方法。该表由ObjectListDataProvider填充。

解决方案

总是很高兴能够回答我们自己的问题。
我设法通过将表的数据提供程序强制转换为ObjectListDataProvider并使用方法" getObject"来取回原始对象来解决该问题。

因此,我偶然发现了这一点,希望找到如何实际进行选择并获取行信息。我最终想通了,我认为其他人可能会从我的工作中受益。

我在JSP的表列中添加了一个RadioButton并添加了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函数,但这是可行的,因此我不在乎找出其他方法。