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

 

转载于:https://www.cnblogs.com/windy2008/archive/2010/12/07/1898820.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值