首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SPFile ()更新SPFile.Update属性

使用SPFile ()更新SPFile.Update属性
EN

Stack Overflow用户
提问于 2015-12-14 15:39:50
回答 2查看 2.4K关注 0票数 1

我正在尝试更新SPFile属性。

这是我的代码:

代码语言:javascript
复制
            using (SPSite oSite = new SPSite(sFileURL))
            {
                using (SPWeb oWeb = oSite.OpenWeb())
                {
                    oWeb.AllowUnsafeUpdates = true;
                    oFile = oWeb.GetFile(sFileURL); 
                    foreach (XmlNode xNode in oXmlDoc.FirstChild.ChildNodes)
                    {
                        oFile.Item.Properties[xNode.Name] = xNode.InnerText;
                        string itemmm =oFile.Item.Properties[xNode.Name].ToString();

                    }
                    oFile.Update();
                    oWeb.AllowUnsafeUpdates = false;
                }
            }

问题是,当我在SharePoint中检查文件属性时,我没有看到我所做的更改。我试图添加AllowUnsafeUpdates = true,但它并没有解决问题。

我还能做什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-12-14 15:53:19

实际上,您不修改SPFile实例,而是修改相关的SPItem。因此,调用SPFile.Update()什么也不做。最好直接使用SPItem实例:

代码语言:javascript
复制
SPItem item = oFile.Item;
item.Properties[xNode.Name] = xNode.InnerText;
item.Update();

此外,AllowUnsafeUpdates属性与您的情况无关。不要改变它。

票数 2
EN

Stack Overflow用户

发布于 2015-12-14 15:54:13

您的代码缺少所有要在实际更新之前完成的检查。

代码语言:javascript
复制
 using (SPSite oSite = new SPSite(sFileURL))
      {
       using (SPWeb oWeb = oSite.OpenWeb())
            {
             oWeb.AllowUnsafeUpdates = true;
             SPFile oFile = oWeb.GetFile(sFileURL); 
             if (oFile == null)
             {
             return false;
             }
             SPListItem item = oFile.GetListItem();           

             if (item.File.Level == SPFileLevel.Checkout)
             {
                 item.File.UndoCheckOut();
             }
             if (item.File.Level != SPFileLevel.Checkout)
             {
             item.File.CheckOut();
             }

             item["Your Column name"] = "Value";

             item.SystemUpdate(false);
             item.File.CheckIn("SystemCheckedin");
             item.File.Publish("SystemPublished");    
             oWeb.AllowUnsafeUpdates = false;
       }
   }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34270983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档