entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Seleccionar Item de listado dinamico

Hola.

Estoy realizando una aplicación de administración de usuarios en la cual hay una parte donde tengo una formulario con un <select></select>
El cual se llena a partir de un @{Html.RenderAction("ListaTipoDeUsuarios", new { selected = 0 });}

Algo asi (Index.cshtml)..

...
<div class="lg-xs-12">
   <label>Tipo Usuario</label>
   <select name="tipoUsuario" class="form-control" >
      @{Html.RenderAction("ListaTipoDeUsuarios", new { selected = 0 });}                                
   </select>
</div>
....

Tengo mi función en el controlador el cual realiza la consulta para traer el listado de tipos de usuarios (HomeController.cs):

[ChildActionOnly]        
public PartialViewResult ListaTipoDeUsuarios()
{
  string dtTipoUser = client.GetTiposUsuario("{}");
  DataTable dt = (DataTable)JsonConvert.DeserializeObject(dtTipoUser, typeof(DataTable));
  List<TipoUsuarioBO> listaTiposUsuarios = new List<TipoUsuarioBO>();
  foreach (DataRow row in dt.Rows)
  {
    TipoUsuarioBO tipoUsuario = new TipoUsuarioBO();
    tipoUsuario = TiposUsuarioBR.MapeoTipoUsuario(row, tipoUsuario);
    listaTiposUsuarios.Add(tipoUsuario);
  }      
  return PartialView(listaTiposUsuarios);
}

Y mi vista del listado (ListaTipoDeUsuarios.cshtml):

@foreach (var item in Model)
{
    <option value="@item.Id">@item.Id - @item.Descripcion</option>
}

Mi pregunta es, como le hago para que al cargar el listado, si es el caso, ya venga con uno de los item seleccionados. Actualmente siempre que cargo la vista, me trae seleccionado por default el primer item de la lista. Como le haría si quiero me cargue el segundo o el tercero.. según sea el caso.

NOTA: intente cambiando el "0" del "new { selected = 0 }" pero no hace nada.

1 Respuesta

2votos

jrgm0005 Puntos2990

hola @Andhii1293,

prueba añadiendo en ListaTipoDeUsuarios.cshtml):

@foreach (var item in Model)
{
if(@item.id == "quieroque sea la seleccionada")
    <option selected value="@item.Id">@item.Id - @item.Descripcion</option>
else
    <option value="@item.Id">@item.Id - @item.Descripcion</option>
}

Así indicando el ID del elemento que quieres seleccionar al cargar, le añades el atributo selected del option.

Espero que te sirva.

Juan Ramón González Morales.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta