Comenzando con el GridView

En paginas web es muy común organizar la información en una forma tabular. Hace mas fácil leer e interpretar. No es una sorpresa que la información en bases de datos es representada en tablas y que las hojas de calculo tienen columnas y filas.

El control GridView en ASP.NET nos permite crear tablas dinámicamente para representar información. Usualmente es usado con información de bases de datos, pero no esta limitado a bases de datos. Por ejemplo, también lo podemos utilizar con colecciones de objetos y XML.

En este post veremos un ejemplo sencillo con el GridView.

Primero vamos a definir nuestra información. Utilizaremos una clase con unas cuantas propiedades para representar ordenes. También definiremos un método para crear un arreglo de ordenes. Las propiedades de la clase Order serán las columnas y cada elemento en el arreglo será una fila.

namespace WebExample.Business
{
    public class Order
    {
        public int OrderID { get; set; }
        public String Customer { get; set; }
        public DateTime OrderDate { get; set; }
        public Decimal Total { get; set; }

        static public Order[] LoadOrders()
        {
            List orders = new List<Order>();

            Order order = new Order();
            order.OrderID = 1001;
            order.Customer = "Test Customer";
            order.OrderDate = new DateTime(2011, 3, 20);
            order.Total = 1250.50M;
            orders.Add(order);

            order = new Order();
            order.OrderID = 1002;
            order.Customer = "Test Customer";
            order.OrderDate = new DateTime(2011, 4, 1);
            order.Total = 2600.0M;
            orders.Add(order);

            order = new Order();
            order.OrderID = 1003;
            order.Customer = "Oscar Martinez";
            order.OrderDate = new DateTime(2011, 4, 10);
            order.Total = 800.0M;
            orders.Add(order);

            return orders.ToArray();
        }

    }
}

En una aplicación real, este método leería la información de una base de datos y regresaría un DataTable o DataSet. Aquí estamos utilizando un arreglo de objetos para simplificar el ejemplo.

Ahora vamos a definir el diseño de nuestra tabla.

        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
            <Columns>
                <asp:BoundField DataField="OrderID" HeaderText="Order Number" />
                <asp:BoundField DataField="Customer" HeaderText="Customer" />
                <asp:BoundField DataField="OrderDate" HeaderText="Order Date" DataFormatString="{0:M/d/yyyy}" />
                <asp:BoundField DataField="Total" HeaderText="Total" DataFormatString="{0:C}" />
            </Columns>
        </asp:GridView>

El GridView tiene la capacidad de descubrir la estructura de nuestra información y definir las columnas de la tabla. En este caso queremos tener control del diseño. Con la propiedad AutoGenerateColumns igual a false, le estamos diciendo al GridView que no genere las columnas por nosotros.

Después dentro la etiqueta <Columns> definimos las columnas de nuestra tabla. Hay diferentes tipos de columnas a nuestra disposición. Aquí vamos a utilizar solamente BoundField. Este tipo de columna esta atado a un campo de información.

También tenemos la opción de especificar un titulo para cada columna y el formato para fechas y números.

Por ultimo, vamos a escribir el código para leer la información y pasársela al GridView con la propiedad DataSource. Después utilizamos el método DataBind() para que el GridView procese la información y genere la tabla.

using WebExample.Business;

namespace WebExample
{
    public partial class GridTest : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                LoadGrid();
            }
        }

        private void LoadGrid()
        {
            Order[] data = Order.LoadOrders();
            GridView1.DataSource = data;
            GridView1.DataBind();
        }

    }
}

Ahora ejecuta la aplicación web.

Simple GridView

Haremos tareas mas avanzadas en otros posts. Por favor deja tus comentarios si tienes alguna pregunta o sugerencia.

Recibir Actualizaciones Gratis
Entradas Relacionadas
Comentarios