Archive for setembro \07\UTC 2011

Retornar dados via API do SharePoint de campos complexos como Lookup, Choice e User

7 de setembro de 2011

SharePointers,

Hoje li um post de consulta rápida interessante no blog do Cory Peters (http://corypeters.net/), onde ele explora como popular e retornar dados via API do SharePoint de campos complexos como Lookup e Choice com múltiplos valores habilitados ou não.

Decidi compartilhar o mesmo conteúdo em português, segue abaixo:

Lookup Field
Classe: SPFieldLookup
Classe que retorna o valor do campo: SPFieldLookupValue

Populando o campo:

item[“FieldName”] = new SPFieldLookupValue(“Title”);
item.Update();

OU: O 1 no método abaixo, representa o id daquele valor

item[“FieldName”] = new SPFieldLookupValue(1, “Title”);
item.Update();

Retornando os dados:

SPFieldLookupValue itemValue = item[“FieldName”] as SPFieldLookupValue;
int id = itemValue.LookupId;
string value = itemValue.LookupValue;


Multiple Lookup Field
Classe: SPFieldLookup
Classe que retorna o valor do campo: SPFieldLookupValueCollection
Populando o campo:

SPFieldLookupValueCollection itemValues = SPFieldLookupValueCollection();
itemValues.Add(new SPFieldLookupValue(1, “Title”));
item[“FieldName”] = itemValues;
item.Update();

Retornando os dados:

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


User Field
Classe: SPFieldUser
Classe que retorna o valor do campo: SPFieldUserValue

Populando o campo:

web.EnsureUser(@”domain\username”);
SPUser user = web.AllUsers[@”domain\username”];
item[“FieldName”] = user;
item.Update();

Retornando os dados:

string currentValue = item[“FieldName”].ToString();
SPFieldUser userField = list.Fields.GetFieldByInternalName(“FieldName”);
SPFieldUserValue itemValue = (SPFieldUserValue)userField.GetFieldValue(currentValue);
SPUser user = itemValue.User;

URL Field
Classe: SPFieldUrl
Classe que retorna o valor do campo: SPFieldUrlValue

Populando o campo:

SPFieldUrlValue urlValue = new SPFieldUrlValue();
urlValue.Url = http://sharepoint.microsoft.com,br;
urlValue.Description = “Microsoft SharePoint”;
item[“FieldName”] = urlValue;
item.Update();

Retornando os dados:

SPFieldUrlValue urlValue = new SPFieldUrlValue(item[“FieldName”].ToString());
string url = urlValue.Url;
string description = urlValue.Description;


Multiple Choice Field
Classe: SPFieldMultiChoice
Classe que retorna o valor do campo: SPFieldMultiChoiceValue

Populando o campo:

SPFieldMultiChoiceValue itemValue = new SPFieldMultiChoiceValue();
itemValue.Add(“Choice 1”);
itemValue.Add(“Choice 2”);
itemValue.Add(“Choice 3”);
item[“FieldName”] = itemValue;
item.Update();

Retornando os dados:

SPFieldMultiChoiceValue itemValue = new SPFieldMultiChoiceValue(item[“FieldName”].ToString());
for (int i = 0; i < itemValue.Count; i++)
{string choice = itemValue[i];}

—–

É isso ai pessoal, espero que seja útil para vocês, como já foi para mim. 🙂

Anúncios