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[0]; 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; } }