当在单元p:cellEditor > p:inputTextarea格外onblur单击时,将文本保存在 a 内非常有效。但是,当单击来自 a 的链接(例如 commandButton、commandLink)时,p:cellEditor > p:inputTextarea它不会p:ajax cellEdit预先执行该事件。它改为执行单击的链接。
这是不正确的,因为它适用于p:inputTextarea没有p:cellEditor. 我意识到这也可能是 Primefaces 的错误。知道如何解决这个问题吗?
<p:dataTable>
<p:ajax event="cellEdit" listener="#{bean.onCellEdit}" />
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{model.text}" />
</f:facet>
<f:facet name="input">
<p:inputTextarea value="#{model.text}" />
</f:facet>
</p:cellEditor>
<p:dataTable>
<p:commandButton actionListener="#{bean.someOtherAction}" />
Run Code Online (Sandbox Code Playgroud)
我将错误提交给了 Primefaces。但是是否有通过 javascript/jQuery 解决此问题的方法?
在 Primefaces 错误报告上没有成功后,我最终将侦听器直接连接到所有实例p:cellEditor。它似乎有效,我不会再失去输入了。
<p:cellEditor>
<f:facet name="output">
<h:outputText value="#{model.text}" />
</f:facet>
<f:facet name="input">
<p:inputTextarea value="#{model.text}">
<!-- this is the relevant line -->
<p:ajax listener="#{bean.onCellEdit}" global="false" update="@this" />
<!-- end relevant line -->
</p:inputTextarea>
</f:facet>
</p:cellEditor>
Run Code Online (Sandbox Code Playgroud)