Desenvolvimento - Sharepoint - Dev
Recuperando valor de uma coluna do tipo Choice
Como recuperar valor de uma coluna do tipo Choice com .NET + SharePoint.
por Douglas RomãoOlá a todos!!
Venho trazer mais um tutorial simples, porém muito eficaz...como recuperar os valores de uma coluna do tipo Choice no SharePoint?
Precisei disso certa vez no desenvolvimento de um portal e não conseguia encontrar quase nada na internet, então para que vocês possam descobrir mais facilmente como trabalhar com isso segue meu tutorial:
Nesse exemplo, salvarei os valores da coluna do tipo Choice em um XML, com a seguinte estrutura:
<Fields>
<Field />
</Fields>
Sendo que para cada <Field />, teremos o valor de uma coluna.
Então vamos lá:
- Vou
fazer um método que retorne um XmlNode, que trará essa estrutura que
escrevemos acima:
public XmlNode ValorCampoChoice()
{
/*Criando um XmlDocument para armazenarmos o nosso Xml*/
XmlDocument objXml = new XmlDocument();
/*Carregando a estrutura pré-determinada no nosso XmlDocument */
objXml.LoadXml("<Fields><Field
/></Fields>");
/*Criando um XmlElement e um XmlNode para armazenarmos as informações com a estrutura desejada*/
XmlElement root = objXml.DocumentElement;
XmlNode node = root.ChildNodes[0];
/*Configurações do SharePoint*/
SPSite objSite = new SPSite("URL DO SEU SITE");
SPWeb objWeb = objSite.OpenWeb();
SPList list = objWeb.Lists["NOME DA LISTA"];
/*Aqui é o ponto onde pegamos os valores do Campo, precisamos de uma variável do tipoSPFieldChoice*/
SPFieldChoice items= (SPFieldChoice)list.Fields["NOME DA SUA COLUNA"];
/*Faremos um for para percorrer todos os items do Campo Choice*/
for (int i = 0; i <items.Choices.Count; i++)
{
/*Fazemos
um clone do nosso XmlNode , para que ele seja criado para cada Item do for*/
XmlNode newNode = node.Clone();
/*Criamos um XmlAttribute, que será o nome do atributo no nosso Xml*/
XmlAttribute xmlAtt = objXml.CreateAttribute("NOME DO ATRIBUTO");
/*Atribuímos o valor ao xmlAttribute*/
xmlAtt.Value =items.Choices[i];
/*Aqui colocamos o xmlAttribute dentro do xmlNode*/
newNode.Attributes.Append(xmlAtt);
/*Aqui colocamos o xmlNode dentro do xmlElement*/
root.AppendChild(newNode);
}
/*Removemos o primeiro ChildNode pois ele é renderizado de forma diferente dos outros*/
root.RemoveChild(root.ChildNodes[0]);
/*Retornamos o nosso xmlElement*/
return root;
}
O resultado final deverá ser:
<Fields>
<FieldNOME DO ATRIBUTO="Item1" />
<FieldNOME DO ATRIBUTO="Item2" />
<FieldNOME DO ATRIBUTO="Item3" />
</Fields>
Por hoje é só pessoal, espero ter ajudado e espero que comentem!!!!
Até mais e Viva o SharePoint!!!
- Usando Client Object Model do SharePoint 2010 para melhorar a Experiência do Usuário (UX)Sharepoint - Dev
- LINQ to SharePoint no SharePoint 2010Sharepoint - Dev
- SharePoint 2010: Visual WebPartsSharepoint - Dev
- Integrando Microsoft ASP .NET AJAX com SharePointSharepoint - Dev
- Utilizando Campos de Consulta (Lookup) ProgramaticamenteSharepoint - Dev