none
error al refrescar selectlist RRS feed

  • Pregunta

  • Buenas,

    tengo estos dos desplegables

    @Html.DropDownList("ACCESOID", null, htmlAttributes: new { @class = "form-control", onchange = "BindCentroCanal(this.name);" })
    @Html.DropDownList("CENTROID", null, htmlAttributes: new { @class = "form-control", onchange = "BindCentroCanal(this.name);" })

    Centro se carga en función de Acceso del siguiente modo.

    ViewBag.ACCESOID = new SelectList(db.ACCESO, "ACCESOID", "DESCRIPCION", accesoid);
    ViewBag.CENTROID = new SelectList(db.ACCESO.find(accesoid).CENTRO, "CENTROID", "DESCRIPCION" , null);

    return View();

    Funciona correctamente. Salvo en el siguiente caso.

    Selecciono ACCESO, se carga CENTRO (supongamos Madrid y Barcelona) y selecciono el centro Madrid.

    Pues, selecciono otro ACCESO y carga el centro (supongamos Madrid y Burgos), pues por defecto me deja seleccionado Madrid, aunque yo le este diciendo que el selectedvalue es null. Si en vez de Madrid selecciono Barcelona la primera vez, y luego cambio de acceso entonces sin problema, me sale el desplegable sin seleccionar nada.

    He probado varias cosas ya pero no se que hacer. Alguien puede echarme una mano!? Gracias!

    jueves, 22 de junio de 2017 15:42

Respuestas

  • hola

    >>aunque yo le este diciendo que el selectedvalue es null.

    no funciona de esa forma, debes indicar un item de no seleccion, entonces defines los datos usando

    ViewBag.ACCESOList = new SelectList(db.ACCESO, "ACCESOID", "DESCRIPCION", accesoid);


    y luego el DropDownList

    @Html.DropDownList("ACCESOID", (SelectList)ViewBag.ACCESOList , "--Seleccione ACCESO--", new { @class = "form-control", onchange = "BindCentroCanal(this.name);" })


    saludos



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta DaniDeveloper viernes, 23 de junio de 2017 7:26
    viernes, 23 de junio de 2017 3:44
  • hola

    >>cuándo yo recargo la lista como le indico que quiero que me muestre ese ítem de no selección??

    lo realiza automatico si el ACCESOID no coincide con ningun item

    la idea es que si quiere seleccionar uno usarias

    ViewBag.ACCESOID = 1;

    de esta forma si hay un item que coincida lo seleccionara, por eso la lista y el valor ha seleccionar es diferente

    >>porque el problema que tengo es que selecciono ACCESO y en función de eso carga el CENTRO.

    lo mejor para estos casos es usar ajax, con jquery

     Cascading DropDownList in ASP.Net MVC

    ASP .Net MVC DropDownList Cascading Example

    la idea es que el combo dependiente lo cargas usando ajax y json, sin un post a un action

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta DaniDeveloper lunes, 26 de junio de 2017 7:26
    viernes, 23 de junio de 2017 13:31

Todas las respuestas

  • hola

    >>aunque yo le este diciendo que el selectedvalue es null.

    no funciona de esa forma, debes indicar un item de no seleccion, entonces defines los datos usando

    ViewBag.ACCESOList = new SelectList(db.ACCESO, "ACCESOID", "DESCRIPCION", accesoid);


    y luego el DropDownList

    @Html.DropDownList("ACCESOID", (SelectList)ViewBag.ACCESOList , "--Seleccione ACCESO--", new { @class = "form-control", onchange = "BindCentroCanal(this.name);" })


    saludos



    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta DaniDeveloper viernes, 23 de junio de 2017 7:26
    viernes, 23 de junio de 2017 3:44
  • Gracias Leandro, tienes razón, puedo definir un ítem de no selección.

    pero, cuándo yo recargo la lista como le indico que quiero que me muestre ese ítem de no selección??

    porque el problema que tengo es que

    selecciono ACCESO y en función de eso carga el CENTRO.

    selecciono la primera vez y en CENTRO me carga B y C. Selecciono C.

    pues ahora decido cambiar

    cambio el ACCESO y recargo CENTRO. como en esta segunda carga también exista el Valor C me lo deja seleccionado en vez de situarse en el ítem de no selección. sin embargo! si este valor C no existe en la segunda recarga si que me por defecto el ítem de no selección.

    no se si me explico bien. es que no puedo adjuntar imágenes...

    viernes, 23 de junio de 2017 7:25
  • hola

    >>cuándo yo recargo la lista como le indico que quiero que me muestre ese ítem de no selección??

    lo realiza automatico si el ACCESOID no coincide con ningun item

    la idea es que si quiere seleccionar uno usarias

    ViewBag.ACCESOID = 1;

    de esta forma si hay un item que coincida lo seleccionara, por eso la lista y el valor ha seleccionar es diferente

    >>porque el problema que tengo es que selecciono ACCESO y en función de eso carga el CENTRO.

    lo mejor para estos casos es usar ajax, con jquery

     Cascading DropDownList in ASP.Net MVC

    ASP .Net MVC DropDownList Cascading Example

    la idea es que el combo dependiente lo cargas usando ajax y json, sin un post a un action

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta DaniDeveloper lunes, 26 de junio de 2017 7:26
    viernes, 23 de junio de 2017 13:31
  • Gracias Leandro. Lo tendré en cuenta.
    lunes, 26 de junio de 2017 7:27