Un control interesante y gratuito para aplicaciones ASP.NET: FreeTextBox!

Seguramente muchas veces os habréis encontrado con la necesidad de poder utilizar un control de tipo Rich Text Box en vuestras aplicaciones ASP.NET. Pues bien. hasta ahora Visual Studio en sus distintas versiones no ha incluido un control de estas características en la toolbox de proyectos web. Sin embargo, existe un control gratuito en la red que nos da esta funcionalidad y que podemos utilizar en nuestras aplicaciones: FreeTextBox.

image

Podéis ver una demo live de este control en este enlace.

Liberado Microsoft ASP.NET MVC Beta!

Microsoft acaba de liberar una versión beta de ASP.NET MVC (Modelo-Vista-Controlador) que como sabéis proporciona un nuevo framework MVC sobre el runtime de ASP.NET 3.5. Podéis acceder al enlace de descarga del ASP.NET MVC Beta en este enlace.

Os dejo además la descripción de lo que permite MVC en ASP.NET 3.5:

The ASP.NET MVC Beta release provides a new Model-View-Controller (MVC) framework on top of the existing ASP.NET 3.5 runtime. This means that developers can take advantage of the MVC design patterns to create their Web Applications which includes the ability to achieve and maintain a clear separation of concerns (the UI or view from the business and application logic and backend data), as well as facilitate test driven development (TDD). The ASP.NET MVC framework defines a specific pattern to the Web Application folder structure and provides a controller base-class to handle and process requests for “actions”. Developers can take advantage of the specific Visual Studio 2008 MVC templates within this release to create their Web applications, which includes the ability to select a specific Unit Test structure to accompany their Web Application development.
The MVC framework is fully extensible at all points, allowing developers to create sophisticated structures that meet their needs, including for example Dependency Injection (DI) techniques, new view rendering engines or specialized controllers.
As the ASP.NET MVC framework is built on ASP.NET 3.5, developers can take advantage of many existing ASP.NET 3.5 features, such as localization, authorization, Profile etc.

ASP.NET: Añadiendo columnas programáticamente a un control GridView!

Recientemente en un proyecto en el que estamos trabajando en el CIIN (por supuesto, es un proyecto de SharePoint ;-)), surgió la necesidad de visualizar una serie de elementos de una lista de SharePoint en una web part…este listado tenía la peculiaridad de que los campos de información podían ser imágenes, links, etc. Entonces, lo primero que tuvimos que decidir es cuál de los elementos de visualización de ASP.NET nos podría resolver la papeleta…tras varias pruebas con distintos controles propios de ASP.NET, optamos por realizar una primera prueba con el control de datos GridView. Ahora bien, no es lo mismo utilizar un control de este tipo cuando desarrollamos una página ASP.NET que cuando desarrollamos una Web Part. En el primero de los casos, tenemos la opción drag & drop que nos da el diseñador de Visual Studio 2008, de manera que:

  • Basta con arrastrar un control de tipo GridView a la superficie de diseño.
  • Acceder a la opción Edit Columns disponible en el smart menú del control para añadir las columnas necesarias.
  • Especificar los campos del GridView y su tipo. Podemos disponer de 7 tipos de campos: BoundField, CheckBoxField, HyperLinkField, ImageField, ButtonField, CommandField y TemplateField.
ASP_NET_Add_Column_Gridview_1 ASP_NET_Add_Column_Gridview_2 ASP_NET_Add_Column_Gridview_3
  • Configuramos las propiedades de los campos añadidos y listo. Ya sólo tenemos que hacer el binding con los datos, y nuestro control GridView mostrará datos…fácil!

ASP_NET_Add_Column_Gridview_4

Pero, ¿Y qué pasa cuando desarrollamos web parts de SharePoint? Pues que no disponemos de ningún tipo de ayuda visual, por lo que no nos queda más remedio que intentar añadir los tipos de campo de las columnas de manera programática…¿es esto posible? Como no podía ser de otra forma, la respuesta es que sí, y tras indagar un poco en la red, llegué a la solución que a continuación os plasmo:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Data;

 

namespace MouroWeb

{

    public partial class _Default : System.Web.UI.Page

    {

        protected void Page_Load(object sender, EventArgs e)

        {

            //Origen de datos

            DataTable dtDatos = new DataTable();

            dtDatos.Columns.Add(“Imagen”);

            dtDatos.Columns.Add(“Url”);

 

            DataRow dtRow = dtDatos.NewRow();

            dtRow[“Imagen”] = “Imagenes/Logo_CIIN_pq.gif”;

            dtRow[“Url”] = “CIIN”;

            dtDatos.Rows.Add(dtRow);

 

            //Añadiendo columnas al grid

            GridView1.AutoGenerateColumns = false;

            //Columna tipo imagen

            ImageField imfImagen = new ImageField();

            imfImagen.ShowHeader = true;

            imfImagen.HeaderText = “Imagen”;

            imfImagen.DataImageUrlField = “Imagen”;          

            DataControlField dcfControl = imfImagen;

            GridView1.Columns.Add(dcfControl);

            //Columna tipo Hyperlink

            HyperLinkField hlfLink = new HyperLinkField();

            hlfLink.ShowHeader = true;

            hlfLink.HeaderText = “URL”;

            hlfLink.DataTextField=”Url”;

            hlfLink.NavigateUrl = “http://www.ciin.es”;

            dcfControl = hlfLink;

            GridView1.Columns.Add(hlfLink);

 

            //Haciendo el binding…

            GridView1.DataSource = dtDatos;           

            GridView1.DataBind();          

 

        }

    }

}

Como veis, en el código anterior simplemente:

  • Definimos un origen de datos (un objeto de tipo DataTable) con unos datos de prueba.
  • Especificamos que la propiedad AutoGenerateColumns del objeto GridView utilizado esté a false.
  • Definimos objetos del tipo de campo a añadir que necesitemos y los configuramos según nuestras necesidades (y siguiendo la definición de la fuente de datos). En este caso he definido un objeto de tipo ImageField y otro de tipo HyperLinkField.
  • Añadimos las columnas con el tipo de dato al control GridView. Para ello usamos un objeto de tipo DataControlField.
  • Especificamos cuál es la fuente de datos para el control GridView (el objeto DataTable).
  • Hacemos el correspondiente DataBind.

Sin más, probamos la solución y ya está.

 image

ASP.NET MVC: Publicada la Preview # 5!

Siguiendo con la gran oleada de novedades iniciada el mes pasado en plataforma Microsoft, el equipo de ASP.NET MVC ha anunciado recientemente la disponibilidad de una nueva preview de ASP.NET MVC. La nueva preview (número cinco) esta preparada para su uso con .NET Framework 3.5 y .NET Framework 3.5 SP1, así como Visual Studio 2008, Visual Studio 2008 Sp1 y Visual Studio Web Developer 2008 Express SP1 Edition.

Podéis leer más sobre las novedades de esta preview en este post del blog de Scott Guthrie. Podéis descargaros la preview en este enlace (como no, se trata de un proyecto de Codeplex).

Disponible la primera Preview de ASP.NET AJAX 4.0!

Ya está disponible la primera preview de las nuevas características de AJAX en ASP.NET o o que es lo mismo AJAX 4.0. La preview aparece dentro de las releases de la sección ASP.NET de Codeplex. En esta primera preview se incluyen las siguientes características:

  • Client-side template rendering.
  • Declarative instantiation of behaviors and controls.
  • DataView control.
  • Markup extensions.
  • Bindings.

    Podéis acceder al roadmap de ASP.NET AJAX en este otro enlace.