我在jsff页面中使用af:tree ADF组件。 af:tree中使用的模型是这样的类(此类不基于ViewObject):
public class TreeItem {
String description;
List<TreeItem> children;
}
如何披露仅与某些描述相匹配的节点?在网络中,我发现只有af:基于ViewObject的树模型的例子。
答案 0 :(得分:2)
看起来你没有使用ADF BC。您必须管理TreeTable的disclosureRowKeys,然后在rowDisclosureListener的处理程序中,您可以根据描述是否符合要求更新公开的RowKey。 revealRowKeys的内容是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.
}
}
我目前无法尝试这种逻辑。但是,一旦我重返工作岗位,我会试一试。
答案 1 :(得分:0)
披露一个树节点取决于树组件本身而不是它的模型,如果你想以编程方式公开它,请参考this article来解释那个