它的一種新手問題:作爲數據源的SharePoint列表 - 如何管理
我們有一個Web用戶控件和SP列表作爲數據源的一部分。
對於不同類型的網站說團隊網站,出版門戶等相應列表的路徑將不同。例如:團隊網站它將是http://<Server>/Lists/<List Name>
和出版門戶與本地化http://<Server>/<Locale>/Lists/<List Name>
。
無論列表放置在網站集中的哪個位置,您如何管理Web部件以便正常工作?
請建議。
它的一種新手問題:作爲數據源的SharePoint列表 - 如何管理
我們有一個Web用戶控件和SP列表作爲數據源的一部分。
對於不同類型的網站說團隊網站,出版門戶等相應列表的路徑將不同。例如:團隊網站它將是http://<Server>/Lists/<List Name>
和出版門戶與本地化http://<Server>/<Locale>/Lists/<List Name>
。
無論列表放置在網站集中的哪個位置,您如何管理Web部件以便正常工作?
請建議。
在大多數網站上,我在網站集的根目錄中有一個配置列表。該列表由鍵/值對組成。它僅限於管理員訪問權限並存儲此類設置。因爲它只是另一個SharePoint列表,所以它很容易編輯。
因此,Web部件將通過配置列表執行SPQuery並查找特定的鍵(例如「列表數據源位置」)。該URL將被返回,然後可以用作數據源。儘管您可能希望實現可被覆蓋的默認值,但無需在Web部件的每個實例上設置密鑰或URL。
(順便說一句,用你自己的配置清單,如果你需要存儲更復雜的數據結構,更好的選擇是SPConfigStore)
您應該在Web部件上公開指向列表URL的屬性。然後,您可以註釋該屬性,以便SharePoint將自動允許在「編輯器區域」中設置該屬性。 (IE出現右側面板,當你「編輯Web部件」)
您可以使用下面的屬性來影響SP呈現方式/持續的設置:
另一種解決問題的方法是讓Web部件遍歷所有網站集的網站(SPWeb)並在那裏搜索所需的列表。
如果您通過對象模型訪問網站,則無論網站是否已本地化都無關緊要。您可以使用其SPWeb.Lists屬性檢索網站的所有列表。
這將導致很多性能問題在網站上收集數百或數千的網站。爲URL實現緩存機制將有所幫助,但更好的是設計一個解決方案,而不必在每個頁面請求上進行迭代。 – 2009-10-05 09:42:29
Yeahm,你說的對,Magnus,緩存機制對於加速請求的巨大門戶是非常重要的。 – Flo 2009-10-05 11:25:24