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))UserProfile获取
{ 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();
}
}
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);
}
}