Splistitem.update不工作 -- development 领域 和 sharepoint-foundation 领域 和 splistitem 领域 和 spfield 领域 sharepoint 相关 的问题

SPListItem.Update Not working


3
vote

问题

中文
所以我有这个真正简单的函数,它在两个不同的列表上更新了几个字段(一个是文档库) 在文档库上的内容不会更新我需要更新的任何字段。

这是代码

  public void Approval(int id, string comment, bool result)         {              string ownerLibraryName = string.Empty;             string targetUserName = string.Empty;             int targetId = 0;             string userName = string.Empty;              userName = SPContext.Current.Web.CurrentUser.Name;             string userLibraryName = SPContext.Current.Web.CurrentUser.LoginName.GetUserWithOutDomain();               SPSecurity.RunWithElevatedPrivileges(delegate()             {                 using (SPSite noSecuritySite = new SPSite(SPContext.Current.Site.Url))                 {                     noSecuritySite.AllowUnsafeUpdates = true;                     using (SPWeb noSecurityWeb = noSecuritySite.OpenWeb())                     {                         noSecuritySite.AllowUnsafeUpdates = true;                         SPList userLibrary = noSecurityWeb.Lists.TryGetList(userLibraryName);                         if (userLibrary == null) { throw new Exception(string.Format("La biblioteca {0} no existe", userLibraryName)); }                          SPListItem voboRequest = userLibrary.GetItemById(id);                          targetId = int.Parse((voboRequest[CustomSiteColumns.FIELD_VOBO_ID].ToString()));                         SPFieldUserValue docOwner = new SPFieldUserValue(voboRequest.Web, voboRequest[CustomSiteColumns.FIELD_VOBO_DOC_OWNER].ToString());                         ownerLibraryName = docOwner.User.LoginName.GetUserWithOutDomain();                              voboRequest[CustomSiteColumns.FIELD_CURRENT_ACTION] = "MoveTo";                           noSecurityWeb.AllowUnsafeUpdates = true;                         SPList docOwnerLibrary = noSecurityWeb.Lists.TryGetList(ownerLibraryName);                         if (docOwnerLibrary == null) { throw new Exception(string.Format("La biblioteca {0} no existe", ownerLibraryName)); }                          SPListItem targetDoc = docOwnerLibrary.GetItemById(targetId);                                                 targetDoc[CustomSiteColumns.FIELD_ARCHIVE_RESPONSE] = comment;                         targetDoc[CustomSiteColumns.FIELD_ARCHIVE_APPROVAL] = result;                          targetDoc.Log(string.Empty, DateTime.Now, result ? Support.Enums.TraceableOperation.Aprobado : Support.Enums.TraceableOperation.Rechazado, userName, comment);                         targetDoc.Update();                          voboRequest.Update();                         voboRequest.Delete();                         noSecurityWeb.AllowUnsafeUpdates = false;                     }                     noSecuritySite.AllowUnsafeUpdates = false;                 }             });         }   

如果我检查 targetDoc[CustomSiteColumns.FIELD_ARCHIVE_RESPONSE] targetDoc.Update() 之后,我得到了一个空值,但如果我检查 voboRequest[CustomSiteColumns.FIELD_CURRENT_ACTION] 值<代码> voboRequest.Update() 我得到了一个'moveto',这正是我刚刚分配的值。

任何可能发生的想法?

英文原文

So I have this really simple function which updates a couple of fields on two different lists (one is a document library) The thing is on the document library does not updates any of the fields I need to update.

Here's the code

public void Approval(int id, string comment, bool result)         {              string ownerLibraryName = string.Empty;             string targetUserName = string.Empty;             int targetId = 0;             string userName = string.Empty;              userName = SPContext.Current.Web.CurrentUser.Name;             string userLibraryName = SPContext.Current.Web.CurrentUser.LoginName.GetUserWithOutDomain();               SPSecurity.RunWithElevatedPrivileges(delegate()             {                 using (SPSite noSecuritySite = new SPSite(SPContext.Current.Site.Url))                 {                     noSecuritySite.AllowUnsafeUpdates = true;                     using (SPWeb noSecurityWeb = noSecuritySite.OpenWeb())                     {                         noSecuritySite.AllowUnsafeUpdates = true;                         SPList userLibrary = noSecurityWeb.Lists.TryGetList(userLibraryName);                         if (userLibrary == null) { throw new Exception(string.Format("La biblioteca {0} no existe", userLibraryName)); }                          SPListItem voboRequest = userLibrary.GetItemById(id);                          targetId = int.Parse((voboRequest[CustomSiteColumns.FIELD_VOBO_ID].ToString()));                         SPFieldUserValue docOwner = new SPFieldUserValue(voboRequest.Web, voboRequest[CustomSiteColumns.FIELD_VOBO_DOC_OWNER].ToString());                         ownerLibraryName = docOwner.User.LoginName.GetUserWithOutDomain();                              voboRequest[CustomSiteColumns.FIELD_CURRENT_ACTION] = "MoveTo";                           noSecurityWeb.AllowUnsafeUpdates = true;                         SPList docOwnerLibrary = noSecurityWeb.Lists.TryGetList(ownerLibraryName);                         if (docOwnerLibrary == null) { throw new Exception(string.Format("La biblioteca {0} no existe", ownerLibraryName)); }                          SPListItem targetDoc = docOwnerLibrary.GetItemById(targetId);                                                 targetDoc[CustomSiteColumns.FIELD_ARCHIVE_RESPONSE] = comment;                         targetDoc[CustomSiteColumns.FIELD_ARCHIVE_APPROVAL] = result;                          targetDoc.Log(string.Empty, DateTime.Now, result ? Support.Enums.TraceableOperation.Aprobado : Support.Enums.TraceableOperation.Rechazado, userName, comment);                         targetDoc.Update();                          voboRequest.Update();                         voboRequest.Delete();                         noSecurityWeb.AllowUnsafeUpdates = false;                     }                     noSecuritySite.AllowUnsafeUpdates = false;                 }             });         } 

If I check the targetDoc[CustomSiteColumns.FIELD_ARCHIVE_RESPONSE] field after the targetDoc.Update(), I get a null value, but if I check the voboRequest[CustomSiteColumns.FIELD_CURRENT_ACTION] value after the voboRequest.Update() I get a 'MoveTo', which is precisely the value I just assigned.

Any ideas what might be happening?

           
       
       

回答列表

1
 
vote

除了splistiquem之外,还会尝试更新文件:

  targetDoc.Update() targetDoc.File.Update()   
 

Try updating the file in addition to the SPListItem:

targetDoc.Update() targetDoc.File.Update() 
 
 

相关问题

2  从Scratch SharePoint 2010服务器指南构建?  ( Build from scratch sharepoint 2010 server guide ) 
希望有人可以指向正确的方向。我正在尝试学习如何使用Windows Server 2012 R2基于SharePoint 2010设置,维护,维护,然后记录How-to Video。我在我自己的家中这样做,所以预算旁边是尼尔。我将使用试用版软件,但我对实际起点混淆。各种文章已经假设许多物品到位并且不给出大量方向。 我...

4  减少点击金额以在SharePoint 2007中创建发布页面  ( Reducing amount of clicks to create publishing page in sharepoint 2007 ) 
我有一个使用MOSS 2007 WCM发布站点的客户。 要在此环境中创建页面,您需要: 选择网站设置|创建页面 填写: 标题 页面URL 选择页面布局 单击添加 输入内容 单击提交以获取批准 有人在此流程周围完成任何内容以创建页面: 单击"创建" 页面(自动知道要选择哪些页面布局以隐藏这些选项) 填写:...

1  同时创建任务,冻结。  ( Creating tasks simultaneously freeze ) 
我正在使用两个工作流,通过在SharePoint 2007中使用Visual Studio在C#中完成了两个工作流,第一个在多次将文件复制到另一个库中的文件时激活第一个。 在第二个库上,第二个工作流程在创建项目时启动(每个项目一个),此工作流程是批准工作流程。 问题在第二个工作流程开始,当创建项目时,批准任务开始时,...

3  自定义动作安全控制2007  ( Custom action safe control 2007 ) 
在扩展到我的我的这个问题,如果我将定制动作的位置放在 "Location="Microsoft.SharePoint.StandardMenu" 它给了我错误 无法从装配'',class''中创建一个控制:控制 使用汇编名称'',URL的Web不允许使用'类名'' ''。该类型未注册为安全。 然而...

2  获取来自SharePoint Online的所有用户的列表  ( Get the list of all users from sharepoint online ) 
我正在使用CSOM .NET库通过ClientContext访问SharePoint数据。 有没有办法获取来自SharePoint的所有用户的列表(包含不属于任何组的用户)?如果没有,是否有一个休息API可以用于此目的? ...

5  使用客户端对象模型添加现有的应用程序部分(查找XML)  ( Adding an existing app part using the client object model finding the xml ) 
我最近发现这个漂亮的线程在使用csom添加现有的webpart: 使用sharepoint客户端对象模型添加现有的webpart 我已经尝试了相同的应用程序方法(所以在.app中打包的App部分)但是我没有发现该特定部分驻留在Web部件库中,因此我无法编辑和检索此应用程序部分的XML。 (我确定它是正确安装的,因...

6  识别重复的文档  ( Identifying duplicate documents ) 
搜索结果WebPart有一个布尔属性,可用于配置应返回"重复" 结果。 查看文档,何时是文档a 被认为是 document b 的副本?文件的内容是否需要相同? 还,是否有一种方法可以使用SharePoint对象模型来识别重复文档? ...

2  从SharePoint环境中获取来自SharePoint的数据的方法  ( Ways to get data from sharepoint out of sharepoint environment ) 
我的问题是 有人可以告诉我可能的方式,我可以从SharePoint 2007列表中获取数据,它用SSL / HTTPS为Windows 7小工具(使用HTML / Java脚本), (我问了我的高级开发人员,他们告诉我,客户首先填写一个表单,它由ISA Server验证,并提供了一个Cookie,他稍后使用他访问的S...

0  从Excel导入列表SharePoint  ( Import list sharepoint from excel ) 
如何从Excel导入到SharePoint而没有任何字体面部。 现在,当我将1020个元素从Excel导入SharePoint时,它总是给我这个代码: <font face="Tahoma" color="#000000">Kate</font> 我只想要cate,没有字体面。如何导入纯文本?请帮助,因为我...

1  WebPart - 获取用户配置文件的用户ID  ( Webpart get user id of user profile ) 
我将创建一个位于用户个人资料页面中的WebPart。该WebPart应该获取用户配置文件的用户ID。例如,我以用户A登录并访问用户B的简档,位于用户B配置文件上的WebPart应该获取用户的用户ID。 请帮助我编码。 ...

2  获取SharePoint列表中的可编辑字段列表  ( Get a list of editable fields in sharepoint list ) 
是什么是获取来自SharePoint列表中的UI可编辑的字段列表的虚拟方法。 我尝试获取showinityitform属性,但在许多情况下,它返回null。 我尝试过这个条件检查, listfield.Hidden != true && listfield.ReadOnlyField != true && lis...

0  如何以编程方式添加内容查询WebPart并使用spsitedataquery?  ( How to to add a content query webpart programatically and use a spsitedataquery ) 
这是当前的场景。 我有一个名为:xxx的中央网站。 我有许多妆容,年份名称:2012年,2011年,2010等。 在中央网站上,我有一个名为受益人的列表。 在全年站点上,我有一个名为请求的列表,其中每个列表都有一个查找列到中央站点的受益者列表。 我需要在中央站点中创建一个WebPart,以显示受益人在所有子站点中的所...

1  SharePoint Foundation 2013 - 审核日志  ( Sharepoint foundation 2013 audit log ) 
我可以从审核日志中读取,单击多少次项目? 我知道我可以使用服务器版,但基础呢? 我所做的:中央管理局,我启用了安全商店服务/"审计日志" 我也安装了 https://auditlogsp.codeplex.com/ 和我检查的日志。 但是,似乎基础不保存项目开口? 我可以从数据库中阅读相同的日志:wss...

1  从SharePoint列表列中填写SharePoint People Picker  ( Fill sharepoint people picker from sharepoint list column ) 
我有一个sharepoint列表,谁包含 99887662 类型的列。 在我的WebPart解决方案中,我尝试使用CAML查询基于 Department 列获取列表的数据。每个部门都被分配给 99887764 Persons 。 我想填充下拉列表以从下拉下拉下拉,并且必须填充基于部门返回的数据的下拉目 我经历了...

0  显示用户喜欢spfielduser  ( Showing users like spfielduser ) 
是否有一个选项来向用户展示spfielduser? 我有一个自定义c#webpart,并希望显示用户名。我想要链接到userprofile的每个用户名。 我也希望用户的在线状态。 ...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.