【问题标题】:Invoke a backing bean action method on click of a <h:panelGroup layout="block">单击 <h:panelGroup layout="block"> 时调用支持 bean 操作方法
【发布时间】:2013-03-14 06:26:05
【问题描述】:

如何使 mainDiv 可点击并调用支持 bean 操作方法?

<h:panelGroup layout="block" id="mainDiv">
    <h:panelGroup layout="block" style="float:left;">
        <h:outputText value="#{messageItem.sendBy.registerName}"/>
    </h:panelGroup>
    <h:panelGroup layout="block" style="float:right;">
        <h:outputText value="#{messageItem.sendDate}">
            <f:convertDateTime pattern="HH:mm"/>
        </h:outputText>
    </h:panelGroup>
</h:panelGroup>

【问题讨论】:

标签: jsf-2


【解决方案1】:

最简单的方法是将其内容包装在&lt;h:commandLink&gt; 中,必要时使用&lt;f:ajax&gt;。使用 CSS display:block 让链接跨越整个 div。

<h:panelGroup layout="block" id="mainDiv">
    <h:commandLink action="#{bean.action}" style="display:block;">
        <f:ajax />
        ...
    </h:commandLink>
</h:panelGroup>

或者,鉴于您使用 PrimeFaces 的问题历史,您也可以使用 &lt;p:remoteCommand&gt;

<h:panelGroup layout="block" id="mainDiv" onclick="functionName()">
    ...
</h:panelGroup>
<p:remoteCommand name="functionName" action="#{bean.action}" />

【讨论】:

  • @Ced:这是后来引入/修复的。
【解决方案2】:

你可以在panelGroup上使用f:ajax

<h:panelGroup>
    <f:ajax event="click" listener="#{adminPanel.test}"></f:ajax>
    xxx
</h:panelGroup>

生成的 html :

<span id="j_idt169" onclick="mojarra.ab(this,event,'click',0,0)">
    xxx
</span>

【讨论】:

    猜你喜欢
    • 2014-02-16
    • 1970-01-01
    • 2012-11-27
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    相关资源
    最近更新 更多