如何使用C#从sharepoint中的Multiline文本字段获取文本值

时间:2015-02-18 09:09:43

标签: c# sharepoint

我试过这段代码:

using (SPSite oSite = new SPSite("http://omar:2020/Lists/Calendar1/AllItems.aspx"))
{
    using (SPWeb oWeb = oSite.OpenWeb())
    {
        SPList oList = oWeb.Lists["Calendar"];
        SPListItem item = oList.GetItemById(7);

        txtArea_desc.InnerText = item["Description"].ToString();

    }
}

但它给了我" class =" ExternalClassD6E6296DE90F457892C156ABE9631AC6Hello" 在TextArea中。

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

Description内容类型中的

Event字段具有以下声明:

<Field ID="{9da97a8a-1da5-4a77-98d3-4bc10456e700}"
    Type="Note"
    RichText="TRUE"
    Name="Comments"
    Group="_Hidden"
    DisplayName="$Resources:core,Comments;"
    Sortable="FALSE"
    SourceID="http://schemas.microsoft.com/sharepoint/v3"
    StaticName="Comments">
</Field> 

由于RichText属性设置为true,因此其值包含html内容。

使用SPField.GetFieldValueAsText Method将字段值设为纯文本

示例

using (var site = new SPSite(siteUrl))
{
    using (var web = site.OpenWeb())
    {
        var list = web.Lists.TryGetList(listTitle);
        var item = list.GetItemById(itemId);
        var eventDescField = list.Fields.GetFieldByInternalName("Description");
        var eventDesc = item[eventDescField.Id];
        var eventDescText = eventDescField.GetFieldValueAsText(eventDesc);

    }
}

答案 1 :(得分:-1)

您的多行文字字段必须在设置中处于粗略文字模式,否则您将拥有类似示例的css类