2009-05-22 4 views
10

Ho un campo calcolato in una lista con questa formula:
=CID & " - " & TitleSharePoint - ottenere il valore di campo calcolato senza l'analisi manuale

Quando si visualizza l'elenco, potrebbe apparire come: "2 - Big Meeting". Quando acquisisco il valore dal codice in questo modo:
myItem["CIDandTitle"]

il valore ritorna come: "stringa; # 2 - BigMeeting". Esiste un modo "corretto" in sharepoint per estrarre il valore o devo semplicemente dividere il punto e virgola e il simbolo cancelletto?

Sto usando MOSS2007.

risposta

13

si deve lanciare a uno SPCalculatedField:

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

o

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

Che funziona; così come cf.GetFieldValueAsText (myItem ["CIDandTitle"]). Questo approccio sembra però clunky. – Chloraphil

+0

meno goffo della divisione del punto e virgola e dell'hash ... –

+4

Ho avuto problemi nel tentativo di ottenere un float in questo modo. Ho usato myItem.GetFormattedValue ("floatValue"); – bryanbcook

0

la risposta data da @ Nathan non specifica che è necessario fornire il nome di visualizzazione del campo. Non funzionerà con internalName. Inoltre, è probabile che utilizzi lo come per trasmettere il risultato.

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