2009-08-14 36 views

回答

3

您必須遍歷網站/網站集的所有子網站,然後查看該網站是否具有MyList名稱的列表。該SPWeb.webs屬性可以讓你在網站下的所有網站。

編輯

這樣做的原因是,在SharePoint網站是獨立的,所以你不能訪問的資源在其他網站或網站集不首先訪問一個網站或網站集。

所以,做一個像拉起分配給用戶的所有任務,你需要加載每個站點的每個網站集中,並檢查任務列表,看它是否有該用戶的任務。您可以read this以更好地瞭解網站集的工作方式。網站功能相似,但與根網站集存儲在同一個競爭數據庫中。

編輯2

或在這裏上的評論中指出的,你可以在網站集運行SPSiteDataQuery所以迭代一切,你只希望有跨網站集進行迭代。

+0

我可以有更多信息謝謝 – raklos 2009-08-14 14:23:14

+0

當然,我已經添加了一些關於網站和網站集合工作。你也可以谷歌周圍,以更好地瞭解他們之間的障礙是如何工作的。 – ICodeForCoffee 2009-08-14 15:31:16

+1

這是不正確的,使用SPSiteDataQuery類,您可以獲取整個網站集中用戶的所有任務。 – Colin 2009-08-16 09:35:22

4

通過SPWebs迭代是不可取的,它將不得不遞歸發生(子網站的子網站的子網站等),這使得很容易引入Dispose錯誤,即忘記配置SPWeb對象。

您是否需要列表才能訪問其中的項目?如果它們都具有相同類型的項目,我建議您使用SPSiteDataQuery類,它需要一個CAML查詢並對網站集中的所有內容進行查詢。您可以使用結果DataTable中顯示數據

編輯:另一種方法是FullTextSqlQuery(如果使用的是MOSS,不WSS),它使用SSP's搜索(索引)。通過在SSP中添加映射屬性(意思是將sitecolumns作爲搜索屬性),您可以直接與SSP搜索進行交談,語法類似於SQL