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ão



Olá 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!!!

Douglas Romão

Douglas Romão - Graduando em Análise e Desenvolvimento de Sistemas, tem desenvolvido projetos com SharePoint e .Net desde 2008, provendo soluções colaborativas e corporativas para multinacionais e outras empresas de São José dos Campos - SP com sua própria empresa voltada a desenvolvimento, chamada Belief - Soluções em Tecnologia.
Atua também desenvolvendo projetos .Net, SharePoint, Flex entre outras tecnologias de ponta por conta própria.
Blog:
http://douglasromao.spaces.live.com/