none
DropdownList en una vista edit RRS feed

  • Pregunta

  • Tengo una tabla tareas y estatus, guardo el estatus de cada tarea en la tabla del mismo nombre pero mi problema viene en con las vista edit aqui esta mi viewbag en el controller edit

     ViewBag.Statusid = _db.status.ToList().Select(s => new SelectListItem
                {
                    Value = s.StatusID.ToString(),
                    Text = s.StatusName,

                });

    En la vista Edit

     @Html.DropDownListFor(model => model.Statusid, (IEnumerable<SelectListItem>)ViewBag.Statusid, new { @class = "selectStatus" })

    cuando presiono edit de los datos ya insertados me trae el primer estatus guardado en la base de datos, como puedo indicarle que me muestre primero el guardado y luego las demas opciones 

    Gracias!!!

     

    viernes, 11 de julio de 2014 15:49

Todas las respuestas

  • hola

    eso lo logras asignando un valor a Statusid

    o sea usarias

     public ActionResult Index(){
     
    	ViewBag.Statusid = _db.status.ToList().Select(s => new SelectListItem
                {
                    Value = s.StatusID.ToString(),
                    Text = s.StatusName,
    
                }); 
    	
    	//aqui recuperas la entidad de la db
    	//y asignas el valor asignado al modelo
    	
    	ModelClass model = new ModelClass(){
    		Statusid= valor
    	};
    			
    	return View(model);
     
     }

    si el valor del modelo coincide con algun item que pasas en el viewbag lo seleccionara

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina


    viernes, 11 de julio de 2014 16:25
  • Gracias por la respuesta, pero si le paso un valor luego no tengo las demás opciones de estatus para actualizar
    viernes, 11 de julio de 2014 17:07
  • pero si le paso un valor luego no tengo las demás opciones de estatus para actualizar

    no entendi

    en el viewbag defines la lista

    pero en el model defines el valor que quieres seleccionar en la lista

    por lo que entiendo la view que usas es tipada, o sea defines una clase como model, bueno en esa propiedad

    @Html.DropDownListFor(model => model.Statusid,...

    indicas que valor quieres que se seleccione

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 11 de julio de 2014 17:22
  • ya lo hice pero con jquery

    var valor = $('.hid').val();
            $(".selectStatus option[value='" + valor + "']").attr('selected', 'selected');

    Gracias!!!

    viernes, 11 de julio de 2014 21:56
  • no necesitabas ningun jquery, asp.net contempla perfecamente lo que estas planteando, tienes que asignar el valor al modelo

    si lo resuelves con jquery estas realizando la tipica atada con alambre, porque es incorrecto

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    sábado, 12 de julio de 2014 1:23