viernes, 2 de marzo de 2012

Como crear columnas de sito en SharePoint con código

En ocasiones nosotros los desarrolladores requerimos crear columnas de sitio en SharePoint pero no a través de las listas de definición de Visual Studio. En esta publicación veremos una manera que a mi parecer es bastante sencilla y muy útil.

La entidad

En nuestro proyecto de SharePoint creamos una clase que va a funcionara como una entidad que permita almacenar los parámetros necesarios para la creación de las columnas de sitio de SharePoint.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;

namespace MyProject{
class ColumnsPropertiesEntity {
public string ColumnName { get; set; }
public SPFieldType ColumnType { get; set; }
public bool ColumnRequired { get; set; }
public string groupColumnName { get; set; }
}}

Esta entidad almacena el nombre interno de la columna, el tipo de columna que se desea crear y si la columna es de carácter obligatorio.

El método

Una vez esta construida la entidad lo siguiente es crear el método que creara las columnas.

private void AddSiteColumns(SPWeb mySite, System.Collections.Generic.List columns){
foreach (var column in columns) {
SPField myField = mySite.Fields.TryGetFieldByStaticName(column.ColumnName);
if (myField == null) {
string myColumn = mySite.Fields.Add(column.ColumnName, column.ColumnType, column.ColumnRequired);
myField = mySite.Fields.TryGetFieldByStaticName(myColumn);
myField.Group = column.groupColumnName;
myField.Update();
} }}

El resto es tarea de ustedes.