2013-11-26 44 views
0

我在我的網頁中使用rich:editor來實現某種前端編輯器。點擊一個鏈接時,編輯器應該打開,保存編輯器的內容後,編輯器應該再次關閉。在關閉編輯器時,我遇到onsave事件。這是我的代碼。豐富的事件'onsave':編輯器不會觸發

這是打開編輯器的鏈接,因爲將屬性bean.show設置爲true。它的工作原理確定:

<h:commandLink> 
    ... 
    <f:setPropertyActionListener value="true" target="#{bean.show}" /> 
</h:commandLink> 

這是編輯器本身,只有當show計算結果爲真實的呈現:

<h:form> 
    <rich:editor value="..." onsave="showEditor(false)" rendered="#{bean.show}" /> 
</h:form> 

onsave事件應該接近通過重新設置show屬性設置爲false編輯,但編輯保持打開狀態,因爲不叫showEditor()

<a4j:jsFunction name="showEditor"> 
    <a4j:param name="param1" assignTo="#{bean.show}" /> 
</a4j:jsFunction> 

我在做一些完全錯誤的事情嗎?或者你有任何其他想法如何實現這一點?任何幫助表示讚賞。

回答

1

只是雙重檢查:在版本4.x版RichFaces的,沒有onsave屬性可言,但

  • 的OnInit
  • 的onblur
  • 的onfocus
  • ondirty
  • 平變化

喜歡在org.richfaces.component.UIEditor類。同樣如此,如果你想用f:ajax來渲染編輯器。

現在,編輯器中的「保存」-icon只是發送一個form.submit()什麼的。所以要麼嘗試在該事件上添加jsFunction,要麼引入一個自己的保存按鈕。

編輯: RichFaces的4採用了基於JavaScript的CKEditor的,所以如果你想覆蓋他們的「保存」按鈕,讀者this forum entry regarding CKEditor's save implementation可能是你的幫助。

另外一個valueChangeListener可能是觸發您的Bean.setShow(boolean show)屬性的可能性解決方案。

XHTML:

<rich:editor value="#{bean.editorValue}" 
      valueChangeListener="#{bean.valueChanged}" /> 

法管理的bean:

public void valueChanged(ValueChangeEvent e) { 
    // do the code to close the window here 
} 

valueChangeListener也能在RichFaces的4.3,但CKEditor的的在JavaScript中也許開始是更好的選擇。

希望,這有助於...... L.

+0

謝謝你的回答。不幸的是,在rich:editor組件中不允許使用'valueChangeListener'。我已經檢查過了。認爲我必須按照你的建議「覆蓋」save()方法。 – Tomestos

+0

奇怪的是,它適用於Richfaces 4.3.1.Final ...將源添加到最後的評論。 –

+0

對不起。我測試過的是'setPropertyActionListener'(如果它已經工作,本來會很好),但不是valueChangeListener。 – Tomestos

相關問題