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