我在 jsff 页面中使用 af:tree ADF 组件。af:tree 中使用的模型是这样的一个类(这个类不是基于 ViewObject):
public class TreeItem {
String description;
List<TreeItem> children;
}
如何披露仅匹配某些描述的节点?在网上,我只找到了基于 ViewObject 的 af:tree 模型的示例。
我在 jsff 页面中使用 af:tree ADF 组件。af:tree 中使用的模型是这样的一个类(这个类不是基于 ViewObject):
public class TreeItem {
String description;
List<TreeItem> children;
}
如何披露仅匹配某些描述的节点?在网上,我只找到了基于 ViewObject 的 af:tree 模型的示例。
看起来您没有使用 ADF BC。您必须管理 TreeTable 的公开RowKeys,然后在 rowDisclosureListener 的处理程序中,您可以根据描述是否符合要求来更新公开的RowKeys。公开的RowKeys 的内容是RowKeySet 的实例。
<af:treeTable disclosedRowKeys="#{myBean.disclosedRowKeys}"
rowDisclosureListener="#{myViewBean.handleRowDisclosure}">
</af:treeTable>
在豆子里:
class MyPageBean{
RowKeySet disclosedRowKeys;
//getters and setters.
}
在视图 bean 中:
class MyViewBean{
public void handleRowDisclosure(RowDisclosureEvent event)
{
//get the addedSet OR removedSet - because the event can be expanding or collapsing row.
//obtain the collection model from the tree table.
//use the above collection model and the addedSet OR removedSet to get the exact instance of TreeItem.
if TreeItem.description is satisfied then
getDisclosedRowKeys from the page model and then add/remove the keys obtained in the addedSet OR removedSet.
partially refresh the treeTable.
}
}
我目前无法尝试这种逻辑。但是一旦我回到工作岗位会试一试。
公开树节点取决于树组件本身而不是它的模型,如果你想以编程方式公开它,请参阅这篇文章,它准确地解释了这一点