Todo en ASP.NET

Blog dedicado a la programación con Visual Studio .NET….. especialmente desarrollo Web

[ASP.NET MVC] Filtro de datos básico

Publicado por Julio Avellaneda en 09/14/2012

Hola, el día de hoy quiero mostrar como es posible realizar un filtro en una colección de datos utilizando ASP.NET MVC, lo primero para realizar este filtro es tener un modelo, para este ejemplo añadiremos una clase de nombre Cliente en la carpeta model, la definición de la clase es muy simple:

   1:  public class Cliente
   2:  {
   3:      public int ClienteId { get; set; }
   4:      public string Nombre { get; set; }
   5:      public string Correo { get; set; }
   6:  }

Ahora vamos a crear el controlador:

   1:  public class ClienteController : Controller
   2:  {
   3:      private static readonly List<Cliente> clientes = new List<Cliente>()
   4:      {
   5:          new Cliente { ClienteId = 1, Nombre = "Julio Avellaneda", Correo = "julito_gtu@hotmail.com"},
   6:          new Cliente { ClienteId = 2, Nombre = "Juan Torres", Correo = "jtorres@hotmail.com"},
   7:          new Cliente { ClienteId = 3, Nombre = "Oscar Camacho", Correo = "oscarca@hotmail.com"},
   8:          new Cliente { ClienteId = 4, Nombre = "Gina Urrego", Correo = "ginna@hotmail.com"},
   9:          new Cliente { ClienteId = 5, Nombre = "Nathalia Ramirez", Correo = "natha@hotmail.com"},
  10:          new Cliente { ClienteId = 6, Nombre = "Raul Rodriguez", Correo = "rodriguez.raul@hotmail.com"},
  11:          new Cliente { ClienteId = 7, Nombre = "Johana Espitia", Correo = "johana_espitia@hotmail.com"}
  12:      };
  13:   
  14:      public ActionResult Index(string name)
  15:      {
  16:          if (string.IsNullOrEmpty(name))
  17:              return View(clientes);
  18:          else
  19:          {
  20:              ViewBag.Name = name;
  21:              return View(clientes.Where(c => c.Nombre.ToLower().Contains(name)));
  22:          }
  23:      }
  24:  }

y en el controlador lo primero es definir la fuente de datos, en este caso es una lista estática pero bien podría ser una consulta a una base de datos, luego definimos la acción Index, la cual como argumento va a recibir el nombre por el cual filtrar, y en la lógica simplemente se valida si name tiene algo o no, en caso negativo se retorna la colección en completa, y en caso contrario se realiza el filtro utilizando Linq.

Ahora la vista:

   1:  @model IEnumerable<HelperForm_Get.Models.Cliente>
   2:   
   3:  @{
   4:      ViewBag.Title = "Index";
   5:  }
   6:   
   7:  <h2>Clientes</h2>
   8:  @using (Html.BeginForm())
   9:  {
  10:  <b>Nombre:</b>
  11:  <input type="text" name="name" value="@ViewBag.Name" />
  12:  <input type="submit" value="Filtrar" />
  13:  <table>
  14:      <tr>
  15:          <td>Cliente Id</td>
  16:          <td>Nombre</td>
  17:          <td>Correo</td>
  18:      </tr>
  19:      @foreach (var item in Model)
  20:      {
  21:          <tr>
  22:              <td>@item.ClienteId</td>
  23:              <td>@item.Nombre</td>
  24:              <td>@item.Correo</td>
  25:          </tr>
  26:      }
  27:  </table>    
  28:  }

Lo primero en la vista es que se define el modelo a utilizar con @model IEnumerable<HelperForm_Get.Models.Cliente> (referencia sobre las vistas), luego se hace uso de un helper para definir el formulario Html.BeginForm() y allí dentro una tabla para mostrar los datos, el resultado inicial es:

image

Y ahora, si digitamos por ejemplo ju en la caja de texto y damos filtrar efectivamente se realiza el filtro:

image

Como se puede observar es bastante simple.

Espero les sea de utilidad el post, saludos!

About these ads

3 comentarios hacia “[ASP.NET MVC] Filtro de datos básico”

  1. [...] [ASP.NET MVC] Filtro de datos básico [...]

  2. [...] [ASP.NET MVC] Filtro de datos básico [...]

  3. [...] [ASP.NET MVC] Filtro de datos básico [...]

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Conectando a %s

 
Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.

Únete a otros 1.644 seguidores

%d bloggers like this: