2010-07-28 42 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字段? – 2010-07-29 05:18:13

回答

2

它看起來像你沒有被它引用該字段的內部名稱,這是你怎麼也得與SPListItem的索引訪問他們時,引用的字段。嘗試類似

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

而且應該工作。請注意,內部名稱不會包含空格,並被上面的十六進制字符串替換。

+0

我要去嘗試一下,但我怎麼知道內部名字是什麼? – 2010-07-29 05:07:10

+0

實際上它沒有工作。它是一個infopath格式的文檔庫有沒有關係? – 2010-07-29 05:15:08

+0

我通常只寫一個快速的應用程序來遍歷給定列表項的所有字段並打印出SPField.InternalName。或者,您可以獲取每個字段ID(Guid)並使用該ID代替內部名稱。你的信息通道字段可能有某種前綴或內部名稱的前綴(儘管我不熟悉信息集成,所以我不能肯定地說)。 – 2010-07-29 12:53:51

相關問題