Saltar al contenido

MVC: establece el valor seleccionado de SelectList

Solución:

Si tiene su objeto SelectList, simplemente itere a través de los elementos que contiene y establezca la propiedad “Seleccionado” del elemento que desee.

foreach (var item in selectList.Items)
{
  if (item.Value == selectedValue)
  {
    item.Selected = true;
    break;
  }
}

O con Linq:

var selected = list.Where(x => x.Value == "selectedValue").First();
selected.Selected = true;

Un poco tarde para la fiesta aquí, pero así de simple es esto:

ViewBag.Countries = new SelectList(countries.GetCountries(), "id", "countryName", "82");

esto usa mi método getcountries para poblar un modelo llamado países, obviamente lo reemplazaría con lo que sea su fuente de datos, un modelo, etc., luego establece la identificación como el valor en la lista de selección. luego simplemente agregue el último parámetro, en este caso “82” para seleccionar el elemento seleccionado por defecto.

[edit]

Aquí se explica cómo usar esto en Razor:

@Html.DropDownListFor(model => model.CountryId, (IEnumerable<SelectListItem>)ViewBag.Countries, new { @class = "form-control" })

Importante:
Además, hay otra cosa a tener en cuenta: asegúrese de que el campo de modelo que usa para almacenar el Id seleccionado (en este caso model.CountryId) de la lista desplegable es anulable y se establece en nulo en la carga de la primera página. Este me atrapa todo el tiempo.

Espero que esto le ahorre a alguien algo de tiempo.

Simplemente use el tercer parámetro para el valor seleccionado en mvc4

@Html.DropDownList("CountryList", new SelectList(ViewBag.Countries, "Value", "Text","974"))

Aquí se selecciona “974” Valor especificado

En mi resultado, el país seleccionado ahora es qatar.in C # como se muestra a continuación`

    foreach (CountryModel item in CountryModel.GetCountryList())
        {
            if (item.CountryPhoneCode.Trim() != "974")
            {
                countries.Add(new SelectListItem { Text = item.CountryName + " +(" + item.CountryPhoneCode + ")", Value = item.CountryPhoneCode });

            }
            else {


                countries.Add(new SelectListItem { Text = item.CountryName + " +(" + item.CountryPhoneCode + ")", Value = item.CountryPhoneCode,Selected=true });

            }
        }
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *