jueves, abril 25, 2013

Mostrar entidad relacionada como lista desplegable (combo) en ASP.Net

En un proyecto ASP.Net, supongamos que 2 entidades relacionadas como por ejemplo Cliente y Provincia (relación N a 1). En la ficha de Cliente podemos mostrar la Provincia como una lista desplegable de selección (combo) de la siguiente forma:

1) En la acción Edit (y/o Create) del ClientesController añadir:

      var ctx = new MyProject.Models.MyContext();
      ViewData["ProvinciaId"] = new SelectList(ctx.Provincias, "Id""Name");

...donde Id y Name son campos de la entidad Provincias

OJO: El identificador del ViewData debe llamarse exactamente igual que el campo de la entidad principal que hace referencia a la entidad relacionada.



Si queremose un elemento seleccionado por defecto, podemos hacerlo así:

      var ctx = new MyProject.Models.MyContext();
      var provinciasSelectList = 
            from p in ctx.Provincias
            select new { Value = p.Id, Text = p.Name, Selected = (p.Name == "Málaga") };
      ViewData["ProvinciaId"] = new SelectList(provinciasSelectList , "Value""Text");

 2) En al vista que toque (Clientes/Edit y/o Clientes/Create) añadir:

     Html.DropDownList("ProvinciasList")
 
 
 


No hay comentarios:

Publicar un comentario