2012-08-07 4 views
0

"Employees"라는 공유 지점 목록이 있습니다. 나는 다음과 같은 열이 있습니다루핑 선택 SharePoint 목록 열

  • 제목을
  • FIRSTNAME
  • Band1
  • Band2
  • Band3
  • Band4

내가, 20 밴드 열이 있지만, 나는 4 밴드 만 포함했다. 문제를 더 잘 설명하기 위해 나는 특정 열에서 데이터를 가져 오는 방법을 알고 있지만, 어떻게 내가이 일을 가야합니까 다음

  1. 각 "밴드"열을 통해서만
  2. 루프 위의 목록에서 "밴드"열 수를 얻고 각 밴드의 항목/값을 가져 오거나 표시하십시오.

처음에는 모든 밴드 열을 순환하는 루프가 있지만 그 안에 루프가있어 각 항목/값을 내부에 표시합니다. 각 밴드 그러나 나는 그것을하고있는 방법에 관해 완전히 모르는 것이 아니다

개 어떤 아이디어 나 제안은 크게 감사 것,

감사합니다,

답변

1

모든 밴드 필드를 얻으려면, 내가 할 줄이 당신에게 밴드 번호를 매핑하는 Dictionary<int, Guid>을 얻어야한다

var fieldLookup = mySpList.Fields.Cast<SPField>() 
    .Where(f => f.Title.StartsWith("Band")) 
    .Select(f => { 
      int bandNo; 
      bool successful = int.TryParse(f.Title.Substring(4), out bandNo); 
      return new { Id = f.Id, BandNo = bandNo, Success = successful }; 
     }) 
    .Where(a => a.Success) 
    .ToDictionary(a => a.BandNo, a => a.Id); 

같은 열 표제에서 필드의 ID까지.

그런 다음이 ID를 사용하여 값을 가져올 수 있습니다. 예를 들어, 당신이 SPQuery에 전달하는 <FieldRef> 요소의 목록을 구축 할 수 있습니다, 또는 당신이 당신의 도움 Rawling에 대한

foreach (SPListItem item in myList.Items) 
{ 
    Console.WriteLine("Item {0}", item.Title); 
    foreach(int bandNo in fieldLookup.Keys) 
    { 
     Console.WriteLine("Band {0}: {1}", bandNo, item[fieldLookup[bandNo]]); 
    } 
} 
+0

감사 할 수 있습니다, 이것은 내가 지금 이것을 시도 할 것이다 유망 보인다. –