Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 2010 无法从C中的工作流任务更新列表项#_Sharepoint 2010_State Machine - Fatal编程技术网

Sharepoint 2010 无法从C中的工作流任务更新列表项#

Sharepoint 2010 无法从C中的工作流任务更新列表项#,sharepoint-2010,state-machine,Sharepoint 2010,State Machine,我没有得到任何异常,但下面的代码根本不起作用。有什么想法吗 SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPWeb web = this.workflowProperties.Web) { try { SPListItem item = web.Lists["NewHireFormsLibrary"].Items[workflowProperties.

我没有得到任何异常,但下面的代码根本不起作用。有什么想法吗

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

看起来您并不是通过字段的内部名称引用字段,这就是使用
SPListItem
的索引器访问字段时必须引用字段的方式。试试像这样的东西

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

它应该会起作用。请注意,内部名称从不包含空格,而是用上面的十六进制字符串替换。

我将尝试使用它,但如何确定内部名称是什么?实际上,它不起作用。它是一个infopath表单文档库是否重要?我通常只编写一个快速应用程序来循环给定列表项的所有字段,并打印出SPField.InternalName。或者,您可以获取每个字段ID(Guid),并使用该ID而不是内部名称。您的infopath字段的内部名称可能有某种前缀或前缀(尽管我对infopath集成不是很熟悉,所以我不能确定)。SharePoint Manager()会显示内部字段名称以及更多内容。好的,只是更新。如果我将项目应用于非infopath字段,则此操作有效。如何更新infopath字段?