- The Lost Reference/
- Posts/
- SharePoint 2010: Agregar un campo de Rich Text a una lista desde Visual Studio 2010 (C#)/
SharePoint 2010: Agregar un campo de Rich Text a una lista desde Visual Studio 2010 (C#)
En un anterior artículo expliqué cómo añadir un campo de tipo Publishing Image a una lista desde Visual Studio 2010. Hoy me explicaré cómo añadir un campo de texto enriquecido a una lista.
El escenario es el siguiente:
Supongamos que tenemos una lista que se crea desde código, de la que se alimenta un WebPart para mostrar información de los registros de esa lista pero que, además, se desea que en alguno de esos campos de la lista se pueda almacenar texto enriquecido para poder añadir enlaces, listas de html, maquetar el texto, etc.
Solución:
- En primer lugar obtemenos el sitio en el que se encuentra la lista
SPWeb oWeb = SPContext.Current.Web;
- Seguidamente tenemos que acceder a la lista en la que queremos añadir el campo.
SPList oList = web.Lists.TryGetList("NombreDeLaLista");- Seguidamente, debemos crear el campo.
HtmlField field = new HtmlField(Web.Fields, "HTML", "Nombre a mostrar");
field.StaticName = "MyRichTextField"; field.Title = "MyRichTextField"; field.RichText = true; field.RichTextMode = SPRichTextMode.FullHtml;
- Por último añadiremos el campo a la lista y, lo ponemos visible en la DefaultView
// Añadir el campo a la listaoList.Fields.Add(field);
SPView view = oList.DefaultView;
// Añadir el campo a la vista por defecto de la listaview.ViewFields.Add("MyRichTextField");view.Update();
NOTA: No nos olvidemos de liberar las instancias que hemos utilizado.
Una vez seguidos estos pasos y ejecutado el código, la lista ya estaría preparada para que, en la ventana de edición-creación de un elemento podamos escribir texto enriquecido en el campo que acabamos de crear.
El código completo quedaría así:
// Obtener el sitio donde se encuentra la listaSPWeb web = SPContext.Current.Web;
// Obtener la listaSPList oList = web.Lists.TryGetList("NombreDeLaLista");// Si existe la listaif (oList != null)
{ // Crear el campoHtmlField field = new HtmlField(Web.Fields, "HTML", "Nombre a mostrar");
field.StaticName = "MyRichTextField"; field.Title = "MyRichTextField"; field.RichText = true; field.RichTextMode = SPRichTextMode.FullHtml;
// Añadir el campo a la listaoList.Fields.Add(field);
// Añadir el campo a la vista por defecto de la listaSPView view = oList.DefaultView;
view.ViewFields.Add("MyRichTextField");view.Update();
}
web.Dispose();
oList = null;El resultado final sería el siguiente
Espero que os sirva de ayuda.