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.
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"]);
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"]);