ADF 中树中 Link 上的 actionListener 未首次调用
actionListner on Link in Tree in ADF is not getting invoked first time
我正在使用 ADF,我有一个树结构,所有节点都为 link。每次点击 link 应该调用 actionListner。
但是每当我第一次单击树节点时,方法都不会被调用。然后在第二次调用它。它发生在树的所有节点上。
我经常冲浪。我找不到合适的解决方案。
这么多地方的建议是这样的:
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.
但是我把 link 放在 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>
我发现我需要在 ADF 中的树中包含 selectionListner 事件。只要我将 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>
我正在使用 ADF,我有一个树结构,所有节点都为 link。每次点击 link 应该调用 actionListner。
但是每当我第一次单击树节点时,方法都不会被调用。然后在第二次调用它。它发生在树的所有节点上。
我经常冲浪。我找不到合适的解决方案。
这么多地方的建议是这样的:
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.
但是我把 link 放在 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>
我发现我需要在 ADF 中的树中包含 selectionListner 事件。只要我将 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>