2009-09-29 46 views
4

我正在爲人們在我們公司網站上執行任務做一個清單。 我現在正在處理的功能是,一旦他們完成任務並將其標記爲完成,我希望我們的SharePoint Web部件向其發送包含他們仍需完成的列表的郵件。通過SPListItem/SPList迭代

由於希望能夠隨意添加和減去項目到列表中的權力,它需要是模塊化的,因此檢查列表需要模塊化並以模塊化方式編寫。

我的問題是所有的任務都存儲在現有代碼的SPList中。 我不太確定如何遍歷列表以確定該人是否已完成以下任務。我沒有看到任何下一個,上一個,頭部或尾部操作(就像我期望的那樣)。由於索引使用字符串,因此它更像是關聯數據結構(地圖)或來自數據庫的主鍵。

請幫助,謝謝大家!

乾杯,

-Jeremiah Tantongco

+0

您的用戶是否在使用Outlook?如果是這樣,那麼你可能只是使用開箱即用的功能,併爲您節省一些工作 – Kasper 2009-09-29 22:10:48

回答

5

SharePoint列表是不是在計算機科學的方法列表,但什麼是最終用戶所期望的列表是:事物

的列表

您應該更多地查看與數據庫表類似的列表。如果您想根據條件在表(List)中查找記錄(項目),則應使用查詢。

因此,在SPList中找到SPListItems的正確方法是使用SPQuery,在SPQuery中您以良好的XML語法(CAML)指定條件,然後將SPQuery傳遞給SPList.GetItems,從而獲得SPListItems的集合。

這應該會給你一些谷歌的條款。如果您需要查詢語法的更多幫助,請使用U2U Caml Query Builder或給我們一些更具體的信息。

+2

除此之外,您還可以使用LINQ查詢SPList:http://linqtosharepoint.codeplex.com/ – 2009-09-30 07:14:01

-1

這可能會解決你的問題

SPList interviewList = myWeb.Lists["listtoiterate"]; 
foreach (SPListItem interview in interviewList) 
{ 
// Do Something 
} 
0

你是否應該遍歷列表與否可能是個見仁見智的問題,但如果它是不可避免的(因爲它是在我的情況)以下代碼可用於。

 SPSite siteCollection = new SPSite("http://localhost/"); 
     SPWeb site = siteCollection.RootWeb; 
     SPList myList = site.Lists["My List"]; 
     SPListItemCollection itemCollection = myList.Items; 

     foreach (SPListItem item in itemCollection) 
     { 
      //Do something with each item 
     }