深入浅出SharePoint——获取Choice Field的Mapping value

 

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;
        }
    }

 

posted @ 2013-07-24 14:51  风影极光  阅读(1081)  评论(0编辑  收藏  举报