我有一个带复选框的JSF woodstock表。当选择一行时,我想对这些项目进行一些处理。我设法得到一些RowKey对象,但无法找到如何获取我放回来的原始对象。该表由ObjectListDataProvider填充。
答案 0 :(得分:1)
能够回答你自己的问题总是很好。 我设法通过将表的数据提供程序转换为ObjectListDataProvider来解决它,并使用方法'getObject'来恢复原始对象。
答案 1 :(得分:0)
所以我偶然发现了这一点,并希望找到如何实际选择并获取行信息。我最终想出来了,我认为其他人可能会从我的表现中受益。
我将一个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());
您可以将单选的selectValue属性与其他内容一起使用,而不是使用valueChangeListener,并避免执行valueChange函数但这样做有效,所以我不想弄清楚另一种方法。