2012-03-19 3 views
1

다음과 같은 문제가 있습니다. 두 개의 "TestUsers"및 "TestGroups"목록이 있습니다. "TestUsers"목록에는 [Group - Choice], [User - Single line of text]라는 두 개의 열이 있습니다. "TestGroups"목록에는 [Group - Single line of text], [CheckedOut - Single line of text]라는 두 개의 열이 있습니다."선택"드롭 다운에서 선택한 값을 기준으로 목록 항목의 필드 업데이트

두 목록의 데이터은 다음과 같습니다

TestUsers (목록) : 사용자 : testuser1 그룹 : GROUPA

사용자 : testuser2 그룹 : GroupB가

TestGroups (목록) : 그룹 : groupA CheckedOut : testuser1

"TestUsers" 목록은 "GroupA"에서 "groupB"로 변경된 "Group"을 가져옵니다.이 또한 "TestGroups"목록에 반영되고 자동으로 업데이트되어야합니다. 예를 들어 "TestUsers"목록에서 "testuser1"의 "Group"을 "groupB"로 변경 한 경우 "TestGroups"목록에서 "testuser1"의 "Group"도 "groupB"로 변경/업데이트해야합니다 ".

위의 내용이 요구 사항을 설명하는 데 충분할 것으로 기대됩니다.

worklflows를 사용하고 조회 열과 계산 열을 사용하여이 작업을 시도했습니다. 그러나 계산 된 열과 조회 열 모두 작동하지 않는 것 같습니다.

어떻게하면 C#에서 코드를 사용하여이 작업을 수행 할 수 있습니까? 목록 항목을 업데이트하는 방법을 알고 있지만 이전에 언급 한 것처럼 별도의 목록에서 값이 변경되면 listitem을 목록에서 업데이트하는 방법이 확실하지 않습니다.

나는이 문제로 인해 붙어있어 여기 게시하는 것으로 생각하여 진행 방법에 대한 빠르고 정확한 제안을 얻을 수 있습니다.

많은 도움을 주시면 감사하겠습니다.

+0

연구를 이벤트 수신기에서 이것은 단지 항목이 변경 확인해 ItemUpdating 이벤트 방법을 사용하려고 여부 및 만들 수 있습니까? – Jigs

+0

워크 플로를 진행하고 있었지만 이벤트 수신기에 대해 읽었지만 아직 구현하지 않았습니다 ...이 문제에 대한 제안이 있습니까? 감사합니다. –

답변

1

당신은 u는 이벤트 수신기 또는 워크 플로우에서하고 논리

public override void ItemUpdating(SPItemEventProperties properties) 
    { 
     base.ItemUpdated(properties); 
     if (properties.ListTitle == "TestUsers") 
     { 
      SPWeb web = properties.OpenWeb(); 
      SPList list = web.Lists[properties.ListTitle]; 
      SPListItem litemUser = list.GetItemById(properties.ListItemId); 


      SPList objFeatureList = web.Lists["TestGroups"]; 
      SPQuery objParentQuery = new SPQuery(); 

      string user = properties.AfterProperties["User"].ToString(); 

      //in Caml query just find it out listitem which contain Users and than update its listitem. 
      objParentQuery.Query = "<Where><Eq><FieldRef Name='Check_x0020_it_x0020_out'/><Value Type='Integer'>"+You should set Userid in Field From litemUser +"</Value></Eq></Where>"; 
      SPListItemCollection liitemcol = objFeatureList.GetItems(objParentQuery); 
      foreach (SPListItem litemGroup in liitemcol) 
      { 
       litemGroup["Group"] = litemUser["Group"]; 
       litemGroup.Update(); 

       // or if you want to using Workflow just startWorflow when item has match over here. 
      } 

     } 
    }