2010-07-28 4 views
0

예외가 없지만 아래 코드는 작동하지 않습니다. 어떤 아이디어? 당신이 그것으로 필드를 참조하지 않는 것 같습니다C#의 워크 플로 작업에서 목록 항목을 업데이트 할 수 없습니다.

SPSecurity.RunWithElevatedPrivileges(delegate() {    
     using (SPWeb web = this.workflowProperties.Web) { 
     try { 
      SPListItem item = web.Lists["NewHireFormsLibrary"].Items[workflowProperties.ItemId - 1]; 
      item["Field 1"] = "Gotcha!!!"; 
      item.Update(); 

      LogHistory("Information", "Workflow indexing complete. " + item["Field 1"], ""); 
     } 
     catch (Exception ex) { 
      LogHistory("Error", ex.Message, ex.StackTrace); 
     } 
    } 
)}; 
+0

알았어, 단지 업데이트. 비 infopath 필드에 항목을 적용하면이 작동합니다. infopath 필드를 업데이트하려면 어떻게해야합니까? –

답변

2

당신이 SPListItem의 인덱서로 액세스 할 때 필드를 참조 할 필요 어떻게 내부 이름,이다.

item["Field_x0020_1"] = "Gotcha!!!"; 

같은 것을 시도하고는 해야 작동합니다. 내부 이름에는 공백이 포함되지 않으며 위의 16 진수 문자열로 대체됩니다.

+0

Im 시도해 볼 것이지만 내부 이름이 무엇인지 어떻게 알 수 있습니까? –

+0

실제로 작동하지 않았습니다. 그것은 infopath 양식 문서 라이브러리가 중요합니까? –

+0

나는 일반적으로 주어진 목록 항목의 모든 필드를 반복하고 SPField.InternalName을 출력하는 빠른 응용 프로그램을 작성합니다. 선택적으로 각 필드 ID (Guid)를 가져 와서 내부 이름 대신 사용할 수 있습니다. infopath 필드에는 내부 이름 앞에 어떤 접두어 또는 어떤 것이 붙을 수 있습니다 (infopath 통합에는 익숙하지 않지만 확실하게 말할 수는 없습니다). –