list field对应的caml定义如下

      <Field Type="Choice" DisplayName="Inspection Result" Required="FALSE" Format="RadioButtons" FillInChoice="FALSE" Group="C0370A" ID="{5D00E04C-9BA6-4f78-BC51-2D2EC2C2EC73}" SourceID="{1e228f79-b273-49cd-b9cc-507b1ecc7c5c}" StaticName="VPPI_InspectionResult" Name="VPPI_InspectionResult"  >
<CHOICES>
<CHOICE>Satisfactory</CHOICE>
<CHOICE>Unsatisfactory – but no assistance is needed</CHOICE>
<CHOICE>Unsatisfactory – I need assistance</CHOICE>
</CHOICES>
<MAPPINGS>
<MAPPING Value="1">Satisfactory</MAPPING>
<MAPPING Value="2">Unsatisfactory – but no assistance is needed</MAPPING>
<MAPPING Value="3">Unsatisfactory – I need assistance</MAPPING>
</MAPPINGS>
</Field>

Console应用程序:

读取第一个item中choice单选类型的field的value值

class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("http://cris-moss/sites/EHS"))
{
using (SPWeb web = site.OpenWeb())
{
SPList list = web.Lists["Safety Inspection Verification"];
if (list != null)
{
SPListItem item = list.Items[];
SPFieldChoice chVisiblity = (SPFieldChoice)item.Fields.GetField("VPPI_InspectionResult");
object value = item["VPPI_InspectionResult"];
string selectedText = chVisiblity.GetFieldValueAsText(item["VPPI_InspectionResult"]);
Console.WriteLine("The value of the field is {0}, which means '{1}'.",
value.ToString(), GetMappingValueforSPFieldChoice(selectedText,chVisiblity.Mappings));
}
Console.ReadLine();
}
}
} static string GetMappingValueforSPFieldChoice(string selectedText,string mappings)
{
string selectedValue = string.Empty;
XmlDocument doc=new XmlDocument();
doc.LoadXml(mappings);
XmlNode node = doc.SelectSingleNode("MAPPINGS/MAPPING[text()='" + selectedText + "']");
selectedValue = node.Attributes["Value"].Value;
return selectedValue;
}
}
05-06 19:29