我有一個自定義控件,帶有4個重複控件。一個重複控件嵌套在另一個,所以它就像這樣:XPages重複控制:變量未找到
<repeat...>
</repeat...>
<repeat... var="row" value="calculations...">
<repeat... var="cell" value="more calculations...">
<field label="cell.label">
</field>
</repeat...>
</repeat...>
<repeat...>
</repeat...>
現在,如果我用repeatControls =假,它幾乎適用不同的是我得到的「細胞未找到」當部分刷新整個控制。當我使用repeatControls = true時,上面的計算會在重複的負載之後發生,因此不顯示任何內容。如果需要,我必須能夠對整個控件進行部分刷新。
我該如何解決這個限制?變量'cell'在哪裏?爲什麼XPages無法找到它?
感謝您的大力幫助!
更新
錯誤也保存文檔時出現。打開文檔,使用按鈕將其置於編輯模式,更改字段,然後單擊保存按鈕。不知何故,repeat-var是'not found'。
我花了一段時間來進行設置,但相監聽工作。我發現在階段2(?)中找不到repeat-var。所以在重複本身中,我根據if(requestScope.currPhase == 2)將value-property設置爲null。該頁面運行時沒有錯誤,但現在這些字段的值不會保存......如果這是應用請求值,那麼repeat-var怎麼會不存在? – 2014-11-05 17:39:29
我還沒有完全調查過,因爲我只使用了只讀組件。但我的理論是,這是關於重複控制=「假」(默認)在外部重複。如果是這樣的話,組件樹將只有重複中每個組件的一個實例 - 有效的一行不會綁定到任何數據。基於此,在生命週期的早期階段,內部重複的值綁定將無法解析。這聽起來似乎合理。如果我的理論是正確的,那麼在外部重複(也可能是內部重複)上設置repeatControls =「true」將起作用。 – 2014-11-05 21:57:01
當然,如果您設置repeatControls =「true」,則會在頁面加載時爲顯示的每行加載一組組件。這意味着你不能使用尋呼機,因爲控件的數量和綁定不能被修改。如果你需要類似的東西,重新加載頁面並使用sessionScope變量來確定重複內容的開始應該起作用。 – 2014-11-05 22:01:13