2012-08-13 57 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