zoukankan      html  css  js  c++  java
  • SharePoint特殊字段处理

    Lookup Field

    Field Class: SPFieldLookup
    Field Value Class: SPFieldLookupValue

    Populating Information:
    item["FieldName"] = new SPFieldLookupValue("Title"); // SharePoint will do the lookup as long as the LookupValue's are unique
    item.Update();
    //or
    item["FieldName"] = new SPFieldLookupValue(1, "Title");
    item.Update();

    Retrieving Information:
    SPFieldLookupValue itemValue = item["FieldName"] as SPFieldLookupValue;
    int id = itemValue.LookupId;
    string value = itemValue.LookupValue; 
     
    Multiple Lookup Field

    Field Class: SPFieldLookup
    Field Value Class: SPFieldLookupValueCollection

    Populating Information:
    SPFieldLookupValueCollection itemValues = SPFieldLookupValueCollection();
    itemValues.Add(new SPFieldLookupValue(1, "Title"));
    item["FieldName"] = itemValues;
    item.Update();

    Retrieving Information:
    SPFieldLookupValueCollection itemValues = item["FieldName"] as SPFieldLookupValueCollection;
    foreach (SPFieldLookupValue itemValue in itemValues)
    {
    int id = itemValue.LookupId;
    string value = itemValue.LookupValue;
    }

    Parent list id:
    string fstr = properties.AfterProperties["MasterPlan"].ToString();
    SPFieldLookupValue lv = new SPFieldLookupValue(fstr);
    SPFieldLookup f = properties.List.Fields["MasterPlan"] as SPFieldLookup;
    SPList parentList = properties.Web.Lists[new Guid(f.LookupList)];
    SPListItem parentItem = parentList.GetItemById(lv.LookupId);

    User Field

    Field Class: SPFieldUser
    Field Value Class: SPFieldUserValue

    Populating Information:
    web.EnsureUser(@"domain\username");
    SPUser user = web.AllUsers[@"domain\username"];
    item["FieldName"] = user;
    item.Update(); 

    Retrieving Information:
    string currentValue = item["FieldName"].ToString();
    SPFieldUser userField = list.Fields.GetFieldByInternalName("FieldName");
    SPFieldUserValue itemValue = (SPFieldUserValue)userField.GetFieldValue(currentValue);
    SPUser user = itemValue.User;

    URL Field

    Field Class: SPFieldUrl
    Field Value Class: SPFieldUrlValue

    Populating Information:
    SPFieldUrlValue urlValue = new SPFieldUrlValue();
    urlValue.Url = "http://www.google.com/";
    urlValue.Description = "Google";
    item["FieldName"] = urlValue;
    item.Update();

    Retrieving Information:
    SPFieldUrlValue urlValue = new SPFieldUrlValue(item["FieldName"].ToString());
    string url = urlValue.Url;
    string description = urlValue.Description;

    Multiple Choice Field

    Field Class: SPFieldMultiChoice
    Field Value Class: SPFieldMultiChoiceValue

    Populating Information:
    SPFieldMultiChoiceValue itemValue = new SPFieldMultiChoiceValue();
    itemValue.Add("Choice 1");
    itemValue.Add("Choice 2");
    itemValue.Add("Choice 3");
    item["FieldName"] = itemValue;
    item.Update();

    Retrieving Information:
    SPFieldMultiChoiceValue itemValue = new SPFieldMultiChoiceValue(item["FieldName"].ToString());
    foreach (string choice in itemValue)
    {
    // value is in choice
    }

    托管元数据字段

    using (SPSite site = new SPSite(http://myUrl))  
    { using (SPWeb web = site.OpenWeb())
        {
          string tagsFieldName = "Tags";
          string myListName = "MyList";
          string myTermName = "myTerm";
          SPListItem myItem = web.Lists[myListName].GetItemById(1);
          TaxonomyField tagsField = (TaxonomyField) myList.Fields[tagsFieldName];
          TaxonomySession session = new TaxonomySession(site);
          TermStore termStore = session.TermStores[tagsField.SspId];
          TermSet termSet = termStore.GetTermSet(tagsField.TermSetId);
          Term myTerm = null;
          try
          {
    myTerm = termSet.Terms[myTermName];
       }
       catch (ArgumentOutOfRangeException)
    { }
         string termString = String.Concat(myTerm.GetDefaultLabel(1033),TaxonomyField.TaxonomyGuidLabelDelimiter, myTerm.Id);
    if (tagsField.AllowMultipleValues)
    {
    TaxonomyFieldValueCollection tagsValues = new TaxonomyFieldValueCollection(tagsField);
    tagsValues.PopulateFromLabelGuidPairs(String.Join(TaxonomyField.TaxonomyMultipleTermDelimiter.ToString(),new[] { termString }));
    myItem[tagsFieldName] = tagsValues;
    }
    else
    {
    TaxonomyFieldValue tagValue = new TaxonomyFieldValue(termString);
    myItem[tagsFieldName] = tagValue;
    } myItem.Update();
    }
    }
    UserProfile获取
          using (SPSite site = new SPSite("http://kfc1/sites/FirstTestSite"))
          {
              SPServiceContext context =
                SPServiceContext.GetContext(site);
             UserProfileManager profileManager = new UserProfileManager(context);
             string sAccount = "free\\administrator";
             UserProfile u = profileManager.GetUserProfile(sAccount);
             foreach (var item in u.Properties)
             {
               Console.WriteLine(item.Name+":"+item.DisplayName);
             }
         }

    出处: http://www.cnblogs.com/windy2008

  • 相关阅读:
    python之-- 异常
    实现Asp.Net Mvc4多级Views目录
    MVC控制下输出图片、javascript与json格式
    公共增删改查(MVC+三层架构)
    工厂方法模式
    简单工厂模式
    单例模式
    JavaScript正则表达式
    JavaScript对象与数组
    JavaScript数组排序
  • 原文地址:https://www.cnblogs.com/windy2008/p/1898820.html
Copyright © 2011-2022 走看看