【问题标题】:SharePoint - get value of calculated field without manual parsingSharePoint - 无需手动解析即可获取计算字段的值
【发布时间】:2016-10-20 18:15:17
【问题描述】:

我在一个列表中有一个计算字段,使用这个公式:
=CID & " - " & Title

查看列表时,可能会显示为:“2 - Big Meeting”。当我像这样从代码中获取值时:
myItem["CIDandTitle"]

返回值为:“string;#2 - BigMeeting”。 sharepoint 中是否有“正确”的方法来提取值,或者我应该简单地拆分分号和井号?

我正在使用 MOSS2007。

【问题讨论】:

    标签: sharepoint sharepoint-2007


    【解决方案1】:

    您必须将其转换为 SPCalculatedField:

    SPFieldCalculated cf = (SPFieldCalculated)myItem.Fields["CIDandTitle"];
    string value = cf.GetFieldValueForEdit(myItem["CIDandTitle"]);
    

    string value = cf.GetFieldValueAsText(myItem["CIDandTitle"]);
    

    【讨论】:

    • 行得通;与 cf.GetFieldValueAsText(myItem["CIDandTitle"]) 一样。不过,这种方法似乎很笨拙。
    • 我在尝试以这种方式获得浮动时遇到了问题。我使用了 myItem.GetFormattedValue("floatValue");
    • 我求助于myItem.GetFormattedValue("floatValue"),正如@bryanbcook 所建议的那样,因为.Fields 访问器需要显示名称而不是健壮的内部名称。 GetFormattedValue 确实适用于内部名称!
    【解决方案2】:

    @Nathan 给出的答案并未指定您需要提供该字段的显示名称。它不适用于内部名称。此外,我很可能使用 as 来转换结果。

    var cf = list.Fields["calculatedfieldDisplayName"] as  SPFieldCalculated;
    String value = cf.GetFieldValueAsText(item["calculatedfieldDisplayName"]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多