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
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.