我在表单中有两个可编辑的primefaces数据表。
这是第一个数据表中的编辑和取消事件处理程序。
<p:ajax event="rowEdit" listener="#{myBean.onEdit1}" update=":myForm:messages" />
<p:ajax event="rowEditCancel" listener="#{myBean.onCancel1}" update=":myForm:messages" />
这是第二个数据表中的编辑和取消事件处理程序。
<p:ajax event="rowEdit" listener="#{myBean.onEdit2}" update=":myForm:messages" />
<p:ajax event="rowEditCancel" listener="#{myBean.onCancel2}" update=":myForm:messages" />
但是这些事件处理程序没有按预期工作。即使我编辑了第一个表行,它也调用了第二个表的事件处理程序。
你知道这个的原因吗?
答案 0 :(得分:0)
我不了解自定义事件名称。但我认为这是因为两个表都有相同的事件名称。您已使用第二个表替换/修改了rowEdit
事件。与其他语言一样,只有您最新的修改才算数。
你知道有<p:inplace>
吗?我建议您将其用于可编辑数据。
<h:outputText value="Ajax Inplace Editor: " />
<p:inplace id="ajaxInplace" editor="true">
<p:inputText value="#{inplaceBean.text}"
required="true" label="text"/>
</p:inplace>