【问题标题】:Conditionally rendered command link does not invoke action有条件呈现的命令链接不调用操作
【发布时间】:2012-02-23 11:21:32
【问题描述】:

我有一个<af:commandLink> 和一个<h:panelGrid>。链接在网格之外。在页面加载时,我将rendered="false" 保留在网格上。我在网格内还有另一个链接。因此,由于未渲染网格,因此未渲染此链接。单击网格外的链接时,我设置了rendered="true",因此网格内的链接也会被渲染。

现在,当我单击网格内的链接时,不会调用该操作。这是如何引起的,我该如何解决?

<af:commandLink action="#{masterFileConfig.getMasterFileTypeConfig}" onclick="return requiredCheck();"
                binding="#{masterFileConfig.commandLink1}"
                id="commandLink1">
    <af:objectImage source="/images/search.gif"
                    binding="#{masterFileConfig.objectImage1}"
                    id="objectImage1"/>
</af:commandLink>
<h:panelGrid columns="2" binding="#{masterFileConfig.panelGrid2}" rendered="#{masterFileConfig.showGrid}"
             id="panelGrid2" width="100%" styleClass="greyTable">
    <h:panelGrid columns="1" border="0" 
                 id="panelGrid3" width="100%" style="text-align:right;">
        <af:commandLink action="#{masterFileConfig.saveMasterFileTypeConfig}"
                        onclick="return handleBusinessRules();"
                        id="commandLink2">
            <af:objectImage source="/images/save.gif" id="objectImage2"/>
        </af:commandLink>
    </h:panelGrid>
</h:panelGrid>

【问题讨论】:

  • 谢谢巴鲁斯。您能否详细说明您的 cmets: 3.如果您使用 而不是 ,那么您可以使用
  • 感谢 Balus .. 我使用了其中一位用户的以下内容,并且成功了 --> 就我而言,Javascript 是为了救援,这意味着,无论有条件显示什么,都将它们放入一个 HTML 部分并且不显示它们 display: none 直到所需的事件发生。 HTML 部分可以根据需要包含任何 JSF 标签(包括命令按钮),并且可以正常工作(调用操作方法和其他内容)。

标签: jsf oracle-adf


【解决方案1】:

您可以尝试将链接的 clientComponent 属性设置为 true 吗?可能没有生成客户端组件供 onClick 事件交互。

另外 - 您是否考虑过使用 af:commandImageLink 而不是两个组件?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 2017-05-25
    • 2015-07-13
    • 1970-01-01
    相关资源
    最近更新 更多