0

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

4

2 回答 2

1

能够回答您自己的问题总是很高兴。我设法通过将表的数据提供者转换为 ObjectListDataProvider 并使用方法“getObject”来取回我的原始对象来解决它。

于 2008-09-19T09:59:24.843 回答
0

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

我在 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 函数,但这很有效,所以我不想找出另一种方法。

于 2010-08-12T23:40:28.967 回答