2012-08-13 61 views
3

如何在rowEditor上单击铅笔后调用监听器? 我想从dataTable准备文本进行编辑(清除选项卡和返回马车的html标签)。 你有什么想法吗? 谢谢。通过点击铅笔调用监听器(primefaces 2.2.1 rowEditor)

+0

有一个名为“rowEdit”的ajax事件,但我不确定当您单击铅笔或完成编辑行时是否执行它。你尝试过吗? – Damian 2012-08-13 13:39:45

+1

RowEditEvent在某人完成编辑时调用。你有什么想法,我如何修改单元格数据进行编辑?谢谢。 – MaximG 2012-08-13 14:53:27

+0

在xhtml中:并且在这个bean中,public void handleRowEdit(RowEditEvent re) – rags 2012-08-14 09:11:17

回答

1

事实上,在数据表中没有铅笔事件。如果你想在铅笔点击后调用监听器,你可以这样做。将rowEditor包装到commandLink.I中并且它工作正常。

<p:commandLink id="rowEditLink" action="#{teamMB.initCombo}" ajax="true" 
         update=":formContent:teamTable> 

     <p:rowEditor /> 
</p:commandLink > 
+0

这真的起作用。非常感谢。 – Kawu 2012-12-21 10:54:31

2

这不会对2.2.1版本的工作,但它仍然是相关的其他

2岁多的问题,但它的顶部谷歌搜索结果中的一个。

有一种方法可以做到这一点,而无需使用<p:commandLink>

Primefaces User Guide页关于AJAX事件154次会谈。有三个有趣的事件rowEdit, rowEditInit, rowEditCancel

rowEditInit是触发了一行时切换到编辑模式 rowEditCancel是当行的编辑被取消

所以,你的代码看起来应该是这样

<p:ajax event="rowEditInit" listener="#{tableBean.onEditInitCleanUp}" update="@form"> 

然后触发事件的事件您听众会做适当的清理。

+0

你应该注意问题中的primefaces版本! – mstzn 2015-06-02 14:55:19

+0

可能你不需要'更新'参数,因为将更新该行。在我的情况下,表格是在一个对话框中,所以如果你更新它关闭,在这种情况下,你必须再次负责重新打开对话框。 PS:ajax解决方案非常优雅 – 2017-05-25 14:47:17