SharePoint - get value of calculated field without manual parsing
Asked Answered
W

2

10

I have a calculated field in a list with this formula:
=CID & " - " & Title

When viewing the list, it might display as: "2 - Big Meeting". When I grab the value from code like so:
myItem["CIDandTitle"]

the value comes back as: "string;#2 - BigMeeting". Is there a "correct" way in sharepoint to extract the value or should i simply split on the semicolon and pound sign?

I am using MOSS2007.

Workbench answered 22/5, 2009 at 14:54 Comment(0)
D
16

You have to cast it to an SPCalculatedField:

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

or

string value = cf.GetFieldValueAsText(myItem["CIDandTitle"]);
Drunk answered 22/5, 2009 at 15:0 Comment(3)
That works; as does cf.GetFieldValueAsText(myItem["CIDandTitle"]). This approach seems clunky though.Workbench
I had issues trying to get a float this way. I used myItem.GetFormattedValue("floatValue");Chantellechanter
I resorted to myItem.GetFormattedValue("floatValue") as @Chantellechanter suggests because the .Fields accessor expects the display name and not the robust internal name. GetFormattedValue does work with internal name!Hit
T
0

The answer given by @Nathan does not specify that you need to provide the display name of the field. It wont work with internalName. Moreover, I'm likely to use as to cast the result.

var cf = list.Fields["calculatedfieldDisplayName"] as  SPFieldCalculated;
String value = cf.GetFieldValueAsText(item["calculatedfieldDisplayName"]);
Tempestuous answered 20/10, 2016 at 10:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.