【问题标题】:PublishingRolloutImage not persisting on Update();PublishingRolloutImage 没有持续更新();
【发布时间】:2012-06-13 23:51:42
【问题描述】:

我有一个列表,其中包含三个字段:标题、PublishingRollupImage 和描述。

我想将图片上传到库 SiteCollectionImages 并在列表中引用它。

我可以将文件上传到 SiteCollectionImages 文件夹,并获取它的 url。

我还可以在“MyList”列表中插入项目,但是 PublishingRolloutImage 在 Update() 方法之后不会持续存在。我已经尝试为 ImageFieldValue 设置构造函数,如下所示:

        new ImageFieldValue("<img src='test.jpg' />");

但是没有用。

这是我的代码:

        using (var site = new SPSite(SPContext.Current.Site.ID))
        using (var web = site.OpenWeb())
        {
            var folder = web.GetFolder("SiteCollectionImages");
            var file = folder.Files.Add(fileName, file, true);
            folder.Update();

            var list = web.Lists["MyList"];
            var item = list.Items.Add();
            item["Title"] = "MyItemTitle";
            item["PublishingRollupImage"] = new ImageFieldValue { ImageUrl = file.Url };
            item["Description"] = "MyDescription";
            item.Update();
        }

我做错了什么?

【问题讨论】:

    标签: sharepoint sharepoint-2007


    【解决方案1】:

    经过多次反复试验,我发现我做错了两件事:

    这个:

    item["PublishingRollupImage"] = new ImageFieldValue { ImageUrl = file.Url };
    

    应该是这样的:

    var image = item["PublishingRollupImage"] as ImageFieldValue ?? new ImageFieldValue();
    image.ImageUrl = String.Format("/{0}", file.Url);
    item["PublishingRollupImage"] = image;
    

    file.Url 需要以斜杠开头。如果它不以斜线开头,它将在 Update() 之后中断;方法。这就是上面出现 String.Format 的原因。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-28
      • 2015-07-22
      • 2015-07-25
      • 2020-07-17
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 2016-07-19
      相关资源
      最近更新 更多