2016-04-27 68 views
0

我們可以添加ID結尾的選擇表達式,如RequestContext.getCurrentInstance().update("@([id$=myId])"); ,它將更新所有以id'myId'結尾的DOM組件。我不想在xhtml中提到這個表達式。附加的圖片顯示了生成的ID。 DOM structure with generated IDs。如果我提到ID爲form:myTableLocalId:4:myId 那麼它只更新單個組件。我想更新所有以ID結尾的組件所有組件'myId'有沒有辦法在RequestContext.getCurrentInstance()。update(「anyExpression」)中添加表達式?

+0

_「我不想在xhtml中提到這個表達式。」_爲什麼不呢?這些id是否在數據表中?所有在同一列我假設? – Kukeltje

+0

是否http://stackoverflow.com/questions/27107993/how-do-update-jsf-datatable-column-only幫助? – Kukeltje

+0

@Kukeltje感謝您的回覆。 _「我不想在xhtml中提到這個表達式」,因爲我必須根據運行時的某些條件決定是否更新這些id。是否有條款更新ID的條件? – nikhilniksuri

回答

1

您正在尋找的是期望jsf識別所有dom元素並更新以某些特定名稱結尾的元素不幸的是,JSF不提供這樣的包含邏輯的設施類型因此您需要編寫邏輯來查找DOM元素的所有元素ID,然後傳遞該ID並且JSF將更新它們。 你可以調用一個Javascript函數,然後在Javascript中,你可以找到所有以你的匹配id結尾的id,然後更新它們,因爲現在你有了ID,你可以輕鬆地做到這一點。

+0

更新:根據你生成的HTML,如果你要更新'form:myTableLocalId',你的問題應該被解決,它會更新'myTableLocalId'內存在的所有元素,即它會更新整個表,我想這就是你正在尋找的東西對於。 – techipank

+0

如果您有1000行和20列,請不要使用。更新20.000組件和它們的包裝器(數據表)不僅僅是更新1000個組件 – Kukeltje

+0

Jsf沒有這個,但是對於數據表OmniFaces來救援(假設具有相同id的組件在同一列中)http:// stackoverflow .COM /問題/ 27107993 /如何-DO-更新JSF的數據表列,只 – Kukeltje

相關問題