我正在使用ADF,并且我有一个树结构,其中所有节点都是链接。在每个点击链接上,应调用actionListner。
但是,每当我第一次单击Tree节点时,方法都不会被调用。然后在第二次调用它。它发生在Tree的所有节点上。
我冲浪了很多。我找不到合适的解决方案。
很多地方的建议是:
Use Immediate property with True value. which is already present in my code.
Use partialSubmit with link. This is also already done.
Convert link into Buttons. Tried. But the same problem remains with it.
Replaced actionListner with action. But again same problem persists.
但是我将链接放在Tree外部并进行了检查。它也在第一次点击时调用。但是在树内,它不是在调用。
FYR代码是:
af:tree id="dtlTree" summary="Project Main Tree Structure"
value="#{pageFlowScope.generalPageHandler.model}" rowSelection="single" var="node" immediate="true"
binding="#{pageFlowScope.generalPageHandler.mainTreeBinding}" contentDelivery="whenAvailable"
initiallyExpanded="true">
<f:facet name="nodeStamp">
<af:group id="g1">
<af:image source="/images/process.png" id="i1" shortDesc=" "/>
<af:link text="#{node.text}" immediate="true"
actionListener="#{pageFlowScope.generalPageHandler.treeSelectionActionListener}"
inlineStyle="font-weight:bold; color:Blue;" id="cil1" partialSubmit="true"/>
</af:group>
</f:facet>
</af:tree>
答案 0 :(得分:1)
我发现我需要在ADF中的树中包含selectionListner事件。一旦我在Tree中添加了selectionListner。这将帮助我专注于所选节点。
一旦我选择的节点获得焦点,它将导航到actionListner。
因此,通过将selectionListner添加到树中,可以帮助我解决所面临的问题。
代码中所做的更改是:
<af:tree id="dtlTree"
summary="Project Main Tree Structure"
value="#{pageFlowScope.generalPageHandler.model}"
rowSelection="single"
var="node"
immediate="true"
binding="#{pageFlowScope.generalPageHandler.mainTreeBinding}"
contentDelivery="immediate"
initiallyExpanded="true"
selectionListener="#{pageFlowScope.generalPageHandler.treeSelectionListner}">
<f:facet name="nodeStamp">
<af:group id="g1">
<af:image source="/images/process.png" id="i1" shortDesc=" "/>
<af:link text="#{node.text}" immediate="true"
actionListener="#{pageFlowScope.generalPageHandler.treeSelectionActionListener}"
inlineStyle="font-weight:bold; color:Blue;" id="cil1" partialSubmit="true"/>
</af:group>
</f:facet>
</af:tree>