2013-03-12 38 views
2

我有一個視圖數據源,它使用視圖鍵訪問文檔並用var「posts」重複顯示它們。在重複中,我有一個var「post」的文檔數據源,它使用posts.getUniversalID()獲取文檔的單元。將錯誤回覆添加到錯誤的父文檔中

進一步向下重複我有另一文檔數據源「newcomment」這是一個響應,並採取父ID爲:post.getDocument()getUniversalID()

的newcomment數據源下面我有一個編輯框和一個提交按鈕,從而節省了爲「後」的響應使用newcomment.save評論()

這裏是我的問題

兩個人訪問相同的XPage。 personA進入該頁面並開始爲帖子寫評論。同時personB創建一個新帖子並在personA提交評論前提交。現在發生的事情是,評論被綁定到最新的帖子,而不是postA的回覆。

我也嘗試過其他的東西,比方說那個數據庫裏有10個帖子。 personA和personB訪問xpages。 personA開始撰寫評論以發佈號碼8.同時,personB在數據庫中創建兩個新帖子。當personA現在提交評論時,它似乎將綁定到現在兩個帖子相同的索引。但仍然指數8.這是錯誤的職位。

如果我將重複更改爲「createControlsAtPageCreation」ie.e repeatControls = true,則評論會附加到正確的帖子,但隨後會遇到另一個問題,即未更新視圖以顯示最新帖子。

我的重複是使用extlib中動態內容控件動態加載的自定義控件。

由於這裏的信息是我發現對repeatControls設置

  • 的repeatControls屬性設置爲true責成重複控件創建其子項的新副本每次迭代通過數據集。
  • 當重複控制配置了財產 repeatControls =「真」,它重複其內容只有一次,在頁面加載時間

所以在這裏,我的問題是,我不明白是怎麼回事。爲什麼我的評論附在錯誤的父文檔上?是我有辦法可以防止這種情況,仍然有新的職位正確

顯示

感謝您的幫助

回答

1

沒有代碼這是一個有點很難想象究竟是怎麼回事一個在這裏,但這個看起來非常相似的問題我有重複控制和價值綁定。

長話短說問題被連接到repeatControls屬性設置爲false。當數據綁定只能用於收集的第一個元素時 - 所有數據都以某種方式神奇地保存到第一個對象中!我設法通過使用動態內容控制重建和repeatControls設置爲true的組合來實現這一目標。只有數據綁定是工作屬性。

這似乎是,如果你只重複渲染(這是什麼repeatControls設置爲false做)jsf生命週期的解碼階段foobar。

+0

感謝您的信息。但聽起來不像是同一個問題。 – 2013-03-14 16:18:25

0

如果沒有XSP標記,很難做到絕對確定,但看起來應用程序代碼是在頁面加載過程中每行創建並維持數據源和組件,因此也增加了組件樹的整體大小和複雜性。您應該嘗試一種只有在最終用戶請求時纔會延遲加載數據源的方法(例如:編輯/回覆)。

有關使用這種動態方法的示例,請參閱XPages Extension Library演示應用程序(XPagesExt.nsf)。特別是,看看Core_InPlaceForm.xsp,它演示瞭如何在xp:repeat中使用xe:inPlaceForm控件。另請參閱使用xe:forumView和xe:forumPost控件演示分層線程的Domino_ForumView.xsp。當它實際上涉及保存任何給定的帖子或評論(失敗,createConflict,強制,異常)和文檔鎖定以適應高爭用情況時,請考慮最適合您需求的併發模式。上述控件都提供了最高級別的動態控制和數據源創建和銷燬。

請隨時發送給我一個工作示例數據庫,在那裏我可以理解您的確切用例 - DM我或給我發電子郵件。

+0

感謝您的回覆Tony 我確實通過禁用dojo內容窗格上的部分刷新來解決連接到錯誤父級的響應問題。 我仍然遇到的問題是,如果在索引0中創建了另一個尚未使用局部刷新顯示的文檔,則在索引0處重複編輯文檔。 我已經向Paul H.發送了一封關於此的電子郵件 – 2013-03-19 16:00:17

+0

您可以在這裏清楚地看到問題http://www.youtube.com/watch?v=CX5c2xZYR-A – 2013-03-19 16:01:25