none
Listbox con dos clases RRS feed

  • Pregunta

  • Hola

    Necesito cargar un listbox, pero tengo el siguiente problema, tengo que mostrar un producto y en listbox las categorias que existen pero ademas si ese producto tiene categorias asociadas que queden seleccionadas, algo así:

    Producto: Camara digita.
    Categorias:

    - Electronica (seleccionado)
    - Muebles
    - Ferretería
    - Camaras (Seleccionado)
    - Computación

    Yo para saber para saber las categorias a las que pertenece un producto tengo una tabla intermedia que tiene idcategoria y idproducto. 

    El problema es ese, se cargar un listbox con categorias pero no se como hacer para que queden seleccionadas en el lisbox las categorias a las que pertenece un producto determinado

    espero me puedan ayudar, gracias.

    jueves, 19 de junio de 2014 21:34

Respuestas

  • hola

    si usas un @Html.ListboxFor() cuando indicas el parametro del modelo este puede ser una lista con los valores seleccionados para el producto

    si en la lista de item que carga la lista existen estos IDs los seleccionara

    o sea

    @Html.ListboxFor(x=>x.PropModel, aqui SelectList)

    con la PropModel podrias definir una lista de int con los valores que debe marcar y en la SelectList defiens la lista de items que muestra el listbox

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Sergio ParraModerator viernes, 20 de junio de 2014 10:35
    • Marcado como respuesta Cris__01 viernes, 20 de junio de 2014 16:02
    jueves, 19 de junio de 2014 23:01

Todas las respuestas

  • hola

    si usas un @Html.ListboxFor() cuando indicas el parametro del modelo este puede ser una lista con los valores seleccionados para el producto

    si en la lista de item que carga la lista existen estos IDs los seleccionara

    o sea

    @Html.ListboxFor(x=>x.PropModel, aqui SelectList)

    con la PropModel podrias definir una lista de int con los valores que debe marcar y en la SelectList defiens la lista de items que muestra el listbox

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    • Propuesto como respuesta Sergio ParraModerator viernes, 20 de junio de 2014 10:35
    • Marcado como respuesta Cris__01 viernes, 20 de junio de 2014 16:02
    jueves, 19 de junio de 2014 23:01
  • Perfecto Leandro me funciono perfecto.

    Te queria consultar como arme la clase para hacer esto:

      public class CategoriasListViewModel
        {
            public Producto xProducto{ get; set; }
            public List<int> Ids { get; set; }
            public List<SelectListItem> Categorias { get; set; }
    
            public CategoriasListViewModel()
            {
                Categorias = new List<SelectListItem>();
                Ids = new List<int>();
           
            }

    Esa es la clase que arme y me funciona, yo agrege una propiedad tipo producto porque en el controlador necesito los datos del producto aparte de las categorias, osea en el public ActionResultIndex creo mi clase auxiliar CategoriasListViewModel y con una funcion de mi capa de datos le cargo los datos, algo asi:

            public ActionResult Edit(int idprod)
            {
                CategoriasListViewModel cts = new CategoriasListViewModel();
                cts.Categorias=CargarCategoriasList(idprod)//Carga categorias por id de producto con SelectListItem
                cts.ProductoNombre = db.ProductoxId(idprod);
                return View(cts);
            }

    Bueno esto me funciona perfecto, lo que quería saber si esta bien como arme mi clase auxiliar y si es una buena practica o estoy haciendo algo mal, gracias.

    viernes, 20 de junio de 2014 16:12