2009-09-29 6 views
4

나는 회사 웹 사이트에서 작업을 수행하는 사람들을위한 체크리스트를 만들고 있습니다. 지금 작업하고있는 기능은 작업을 완료하고 완료된 것으로 표시하면 공유 지점 웹 파트가 마무리해야 할 작업 목록을 포함하는 전자 메일을 보내주기를 원합니다.SPListItem/SPList 반복문

원하는대로 항목을 추가 및 제거 할 수 있기를 원하는 기능이므로 모듈화가 필요하므로 목록을 모듈화해야하며 모듈 식으로 작성해야합니다.

내가 가진 문제는 모든 작업이 기존 코드의 SPList에 저장된다는 것입니다. 나는 그 사람이 이미 다음과 같은 작업을했는지 알아보기 위해리스트를 반복하는 법을 정확히 모르겠습니다. 다음, 이전, 머리 또는 꼬리 작업이 표시되지 않습니다 (목록에서 기대하는대로). 인덱싱은 문자열을 사용하기 때문에 DB의 연관 데이터 구조 (지도) 또는 기본 키와 같이 작동합니다.

도와 주셔서 감사합니다.

건배,

+0

사용자가 Outlook을 사용하고 있습니까? 그렇다면 상자 기능을 사용하고 자력을 절약 할 수 있습니다. – Kasper

답변

5

예레미야 Tantongco SharePoint 목록은 컴퓨터 과학의 방법으로 목록이 아니라 최종 사용자가 될 목록을 기대하는 것입니다 : 일

의 목록

목록을 데이터베이스 테이블과 비슷한 것으로보아야합니다. 조건에 따라 테이블 (목록)에 레코드 (항목)를 찾으려면 쿼리를 사용해야합니다.

SPList의 SPListItems를 찾는 올바른 방법은 좋은 XML 구문 (CAML)에서 조건을 지정하는 SPQuery를 사용한 다음 SPQuery를 SPList.GetItems로 전달하여 SPListItems 컬렉션을 다시 얻는 것입니다.

Google에 몇 가지 용어를 제공해야합니다. 쿼리 구문에 대한 도움이 더 필요하면 U2U Caml Query Builder을 사용하거나 좀 더 구체적인 정보를 제공하십시오. (내 경우 있다는)

+2

LINQ를 사용하여 SPList를 쿼리 할 수도 있습니다. http://linqtosharepoint.codeplex.com/ –

-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 
     }