Domanda

C'è un modo per includere un'opzione vuota di default (o con testo) se non v'è alcun valore selezionato per una DropDownList?

È stato utile?

Soluzione

Il seguito sarà anteporre string.Empty al SelectList (o IEnumerable) specificato nel [ "Menu"] oggetto Viewdata. La select avranno id e il nome MenuID.

<%= Html.DropDownList( "MenuID",
                      (IEnumerable<SelectListItem>)ViewData["Menu"],
                      string.Empty ) %>

Documentazione: DropDownList metodo

Altri suggerimenti

Ad esempio:

    Controller :

    private void InitScreenInfoCollate()
    {   
        IEnumerable<MstBrd> listbrd = ibrandRepository.GetItemsByUsercode("");
        ViewBag.Brands = new SelectList(listbrd, "brd_cod", "brd_mei", null);

    }

    View :
    @Html.DropDownList("Brands", null, string.Empty, new { @class = "form-control"})

Risultato:

immagine in linea

Questa soluzione facile lavorato per il mio progetto mvc5:

in vista:

@{
     Model.ModelItemsList.Add(new ModelItem{ });
     SelectList modelItemSelectList = new SelectList(Model.ModelItemsList, "ModelItemID", "ModelItemName");
}

Basta aggiungere un nuovo elemento alla List<> che si desidera visualizzare nella vista. Nel mio caso, ho aggiunto un "ModelItem" vuoto al mio List<ModelItem> ModelItemList. Dal momento che la mia ModelItemID è un GUID, ho dovuto controllare per Guid.Empty nel mio metodo di controllo e fare un po 'di codice. Questo è tutto.

La soluzione presentata qui ha lavorato molto bene per me: http: //forums.asp. net / t / 1142484.aspx / 1

L'idea di base è che si imposta la AppendDataBoundItems proprietà della vostra DropDownList per true e poi mettere un asp:ListItem nel <=> e che diventerà il vostro articolo di default con tutti gli elementi databound viene dopo esso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top