【问题标题】:commandLink in cellEditor doesn't trigger action/actionListenercellEditor 中的 commandLink 不会触发 action/actionListener
【发布时间】:2013-01-17 13:07:23
【问题描述】:

我正在使用 Primefaces 3.4 和 JSF 2.0。我有一个 p:commandLink:

<p:commandLink action="#{wizard.onRemoveFoodItem}" update="@(#ingredientListContent)" immediate="true">
    <span class="ui-icon ui-icon-close"></span>
    <f:setPropertyActionListener target="#{wizard.selectedFoodItem}" value="#{foodItem}" />
</p:commandLink> 

它的目的是从我的 p:dataTable 中的食品列表中删除一行,并且它在正常情况下工作。问题在于我想在同一位置也有一个 p:rowEditor,对于那些熟悉 primefaces rowEditor 的人,在编辑时,你可以看到一个勾号和一个 x 图标(用于结束编辑模式)而且我不想有两个关闭图标,一个意思是取消编辑模式,一个意思是删除当前行。

所以我决定将它嵌入到 p:cellEditor 中,以便在编辑过程中隐藏删除行的“x”:

<p:cellEditor>   
    <f:facet name="output">  
        <p:commandLink action="#{wizard.onRemoveFoodItem}" update="@(#ingredientListContent)" immediate="true">
            <span class="ui-icon ui-icon-close"></span>
            <f:setPropertyActionListener target="#{wizard.selectedFoodItem}" value="#{foodItem}" />
        </p:commandLink> 
    </f:facet>  
    <f:facet name="input"><h:outputText value="" /></f:facet>                       
</p:cellEditor> 

这奇怪地发送了一个 ajax 请求并获得了一个更新响应(没有明显的验证错误),但它不会像它不在 p:cellEditor 标记内时那样调用操作方法 onRemoveFoodItem。我知道 p:cellEditor 并不是真的要以这种方式使用,但我会假设当它可见时,它的行为就像没有 p:cellEditor 围绕它一样。

任何人都可以在这里看到任何明显的错误,或者这是 primefaces 的问题吗?如果有任何帮助,我将不胜感激。

【问题讨论】:

  • 我为这个问题做了一个解决方法,将删除按钮的图标更改为ui-icon-circle-close。不过,如果能得到这个问题的答案还是很高兴的。

标签: java jsf-2 primefaces


【解决方案1】:

我有一个类似的问题,并通过将 process="@this" 属性添加到 p:commandLink 来解决它。

【讨论】:

  • 今晚我试试!感谢您的意见!
猜你喜欢
  • 2012-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-28
  • 2019-01-18
  • 2011-07-18
  • 2013-02-10
  • 1970-01-01
相关资源
最近更新 更多