适用环境
- SharePoint 2010
- SharePoint 2013
Get the List, and the first SPListItem
var web = ;
var list = ("fieldslist");
if (list == null) return;
//Get Item 1, or add a new item if the list doesn't contain any items
SPListItem item;
item = list.ItemCount > 0 ? list.Items[0] : list.();
Set and Get the Title
//Set the Title
item["Title"] = String.Format("Title updated at {0}",t);
//Get the Title
value = item["Title"].ToString();
Set and Get a Text Field
//set
item["textfield"] = String.Format("At {0} dogs still can't write poems", t);
item.Update();
//get
value = item["textfield"].ToString();
Set and Get a Note (or RichText) Field
//set
item["notefield"] = String.Format("At {0} dogs still can't write poems. \r\nBut then, neither can I!", t);
item.Update();
//get
value = item["notefield"].ToString();
(String.Format("<span>Note Field: {0}</span></br>", value));
Set and Get a Yes/No Field (Boolean)
//set
item["yesnofield"] = false;
();
//get
value = item["yesnofield"].ToString();
Set and Get a Number Field
//set
item["numberfield"] = 35;
item["numberfield"] = Double.Parse("354.67");
item.Update();
//get
value = item["numberfield"].ToString();
value = Double.Parse(item["numberfield"].ToString()).ToString("F1");
value = Double.Parse(item["numberfield"].ToString()).ToString("F0");
Set and Get a Date Field
//set
item["datefield"] = DateTime.Now;
//Or, set the date to Now + two days
item["datefield"] = DateTime.Now.AddDays(2);
item.Update();
//get
value = item["datefield"].ToString();
value = DateTime.Parse(item["datefield"].ToString()).ToString("d");
value = DateTime.Parse(item["datefield"].ToString()).ToString("D");
value = DateTime.Parse(item["datefield"].ToString()).ToString("R");
var dateValue = DateTime.Parse(item["datefield"].ToString());
value = dateValue.AddDays(13).ToString("dd-MMM-yy");
Set and Get a Choice Field
//set
var choicevalues = new SPFieldMultiChoiceValue();
choicevalues.Add("Green");
choicevalues.Add("Blue");
item["multiplechoicefield"] = choicevalues;
item.Update();
//get
list.Fields["multiplechoicefield"].ParseAndSetValue(item, choicevalues.ToString());
var multipleChoiceValues = new SPFieldMultiChoiceValue(item["multiplechoicefield"].ToString());
s.AppendLine(String.Format("<span>Multiple Choice Field: {0}</span></br>", multipleChoiceValues));
for (int i = 0; i <= - 1; i++)
{
s.AppendLine(String.Format("<span>Multiple Choice Field, value {0}: {1}</span></br>", i, multipleChoiceValues[i]));
}
Set and Get a Person Field
//set
item["personfield"] = web.EnsureUser("contoso\\fred");
//or
item["personfield"] = web.EnsureUser("fred@");
item.Update();
//get
value = item["personfield"].ToString();
s.AppendLine(String.Format("<span>Person Field: {0}</span></br>", value));
var userFieldValue = new SPFieldUserValue(web, item["personfield"].ToString());
s.AppendLine(String.Format("<span>Person Field: Name = {0}, Email = {1}</span></br>", userFieldValue.User.Name, userFieldValue.User.Email));
Set and Get a Multi-Person Field
//set
var lotsofpeople = new SPFieldUserValueCollection(web, item["lotsofpeoplefield"].ToString());
var personA = web.EnsureUser("contoso\\fred");
var personAValue = new SPFieldUserValue(web, personA.ID, personA.LoginName);
var personB = web.EnsureUser("contoso\\barnie");
var personBValue = new SPFieldUserValue(web, personB.ID, personB.LoginName);
lotsofpeople.Add(personAValue);
lotsofpeople.Add(personBValue);
item["lotsofpeoplefield"] = lotsofpeople;
item.Update();
//get
var fieldUserValueCollection = new SPFieldUserValueCollection(web, item["lotsofpeoplefield"].ToString());
s.AppendLine(String.Format("<span>MultiPerson Field: {0}</span></br>", fieldUserValueCollection));
var userCount = 1;
foreach (SPFieldUserValue v in fieldUserValueCollection)
{
s.AppendLine(String.Format("<span>MultiPerson Field, value {0}: {1}</span></br>", userCount, v.User.Name));
userCount++;
}
Set and Get a Lookup Field
//set
var lookupField = ["lookupfield"] as SPFieldLookup;
var lookupList = [new Guid()];
var lookupitem = [0];
//-or-
//lookupitem = (new Guid("fc71b84c-74d4-4f7c-9eed-fb7a5fbe24a6"));
//-or-
//lookupitem = (1);
var lookupValue = new SPFieldLookupValue(, ());
item["lookupfield"] = lookupValue;
();
//get
var lookupItemValue = new SPFieldLookupValue(item["lookupfield"].ToString());
value = ;
Setting and Getting a HyperLink Field
//set
var hyperlinkField = list.Fields["hyperlinkfield"] as SPFieldUrl;
var urlFieldValue = new SPFieldUrlValue();
urlFieldValue.Description = "Microsoft";
urlFieldValue.Url = " This link is external to TechNet Wiki. It will open in a new window. ";
//SharePoint 2013 Only
hyperlinkField.ValidateParseAndSetValue(item, urlFieldValue.ToString());
//SharePoint 2010 and SharePoint 2013
hyperlinkField.ParseAndSetValue(item, urlFieldValue.ToString());
item.Update();
//get
var hyperlinkFieldValue = new SPFieldUrlValue(item["hyperlinkfield"].ToString());
value = String.Format("<a href=\"{1}\" alt=\"{0}\">{0}</a>", hyperlinkFieldValue.Description, hyperlinkFieldValue.Url);
Setting and Getting a Managed Metadata Field
//set
var managedMetaDataField = list.Fields["managedmetadatafield"] as TaxonomyField;
var termsetId = ;
var termstoreId = ;
var taxonomySession = new TaxonomySession();
var termstore = [termstoreId];
var termset = (termsetId);
var termname = "Rubbish Tip";
var terms = (termname, false);
Term term;
if ( == 0)
{
term = (termname, [0]);
();
}
else
{
term = terms[0];
}
(item, term);
();
//get
var taxonomyFieldValue = item["managedmetadatafield"] as TaxonomyFieldValue;
(("<span>Taxonomy Field: {0} ({1})</span></br>", , ));
Setting and Getting a Multiple Valued Managed Metadata Field
//set
var managedMetaDataField = ["managedmetadatafield"] as TaxonomyField;
var termsetId = ;
var termstoreId = ;
var taxonomySession = new TaxonomySession();
var termstore = [termstoreId];
var termset = (termsetId);
var multipleManagedMetaDataField = ["multiplemanagedmetadatafield"] as TaxonomyField;
var termCollection = new TaxonomyFieldValueCollection(multipleManagedMetaDataField);
var taxonomyLabels = new[] {"Frog Catcher", "Giraffe Stealer", "Moon Dog"};
Term term;
foreach (var label in taxonomyLabels)
{
var terms = (label, false);
term = null;
if ( == 0)
{
term = (label, [0]);
();
}
else
{
term = terms[0];
}
var termValue = new TaxonomyFieldValue(multipleManagedMetaDataField);
= ();
= ;
(termValue);
}
(item, termCollection);
();
//get
var taxonomyFieldValueCollection = item["multiplemanagedmetadatafield"] as TaxonomyFieldValueCollection;
value = ;
foreach (var taxonomyValue in taxonomyFieldValueCollection)
{
value = (value)
? ("{0} ({1})", , )
: ("{0}, {1} ({2})", value, , );
//Or, to use get the term
var currentTerm = (new Guid());
//do something with the term
}
See Also
A Complete Guide to Getting and Setting Fields using PowerShell
SPField
SPFieldText
SPFieldMultiLineText (Note)
SPFieldBoolean
SPFieldCalculated
SPFieldChoice
SPFieldCurrency
SPFieldDateTime
SPFieldLookup
SPFieldMultiChoice
SPFieldMultiChoiceValue
SPFieldNumber
SPFieldUrl
SPFieldUserValue
SPFieldUserValueCollection
SPNumberFormatTypes
SPFieldType
SPDateTimeFieldFormatType
原文链接