我使用的是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中的食物清单中删除一行,并且在正常情况下它正常工作。问题在于我想在同一个位置也有ap:rowEditor,对于那些熟悉primefaces rowEditor的人来说,在编辑时,你可以看到一个检查和一个x图标(用于结束编辑模式)而且我不希望有两个关闭图标,其中一个含义取消编辑模式,另一个取消当前行。
所以我决定将它嵌入到p:cellEditor中,以便&#34; x&#34;在编辑期间隐藏删除行:
<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请求并得到一个更新响应(没有明显的验证错误),但是它没有调用onRemoveFoodItem上的action方法,就像它不在p:cellEditor标签内一样。我理解p:cellEditor并不是真的意味着以这种方式使用,但我认为当它可见时,它会表现得好像没有p:cellEditor包围它。
任何人都可以在这里看到任何明显错误或者这是一个问题吗?我将不胜感激任何帮助。
答案 0 :(得分:6)
我遇到了类似的问题,并通过将 process =“@ this”属性添加到 p:commandLink 来解决此问题。