使用Windows窗体更新Sp2010上的RichTextBoxListService.UpdateListItems方

本文关键字:RichTextBoxListService UpdateListItems 上的 Sp2010 Windows 窗体 更新 使用 | 更新日期: 2023-09-27 18:13:36

我在更新SharePoint 2010列表中的RichText框时遇到问题。

_batchElement.InnerXml =
            string.Format(
                "<Method ID='1' Cmd='New'><Field RichText='True' Name='Other_x0020_Items_x0020_of_x0020'>{0}</Field><Field Name='Overall_x0020_rating_x0020_of_x0'>{1}</Field><Field Name='Do_x0020_you_x0020_wish_x0020_to'>{2}</Field></Method>",
                add_Report_Details.Rtf,
                arrText,
                addreportwish);

触发更新的代码:

 ListService.UpdateListItems(ListName, _batchElement);

但是,考虑到这个xml元素不能有任何以'开头的内容,它不想工作。

我也尝试过HTML,甚至通过敏捷包传递HTML,但它也不起作用。

什么是正确的方法或字段名或什么东西来更新那个richtextbox?

我需要一个cdata吗?还是什么?我很困惑,MSDN上的文档对这个方法不是很好。

使用Windows窗体更新Sp2010上的RichTextBoxListService.UpdateListItems方

通过HTML编码传递它,它似乎工作得很好:

 private static string SetProperHTML(string sHtml)
    {
        var sb = new StringBuilder();
        var stringWriter = new StringWriter(sb);
        string input = sHtml;
        var test = new HtmlAgilityPack.HtmlDocument();
        test.LoadHtml(input);
        test.OptionOutputAsXml = false;
        test.OptionCheckSyntax = true;
        test.OptionFixNestedTags = true;
        test.OptionAutoCloseOnEnd = true;
        test.OptionWriteEmptyNodes = true;
        test.Save(stringWriter);
        Console.WriteLine(sb.ToString());
        return WebUtility.HtmlEncode(sb.ToString().Replace(Environment.NewLine, ""));
    }

还需要确保您的field描述符设置正确:

_batchElement.InnerXml =
            string.Format(
                "<Method ID='1' Cmd='New'><Field Name='Other_x0020_Items_x0020_of_x0020'>{0}</Field><Field Name='Overall_x0020_rating_x0020_of_x0'>{1}</Field><Field Name='Do_x0020_you_x0020_wish_x0020_to'>{2}</Field></Method>",
                SetProperHTML(add_Report_Details.Document.Body.InnerHtml),
                arrText,
                addreportwish);

和其他字段一样,不需要特殊的子标签。只要将表单上的Sp2010字段设置为100%完整的HTML,就应该可以工作。还有其他的HTMLEncoders在那里,这可能比WebUtility更好,但在大多数情况下,这应该工作,鉴于敏捷包修复了大部分的HTML。

相关文章:
  • 没有找到相关文章