2012-03-08 17 views
7

estoy usando Html.DropDownList para crear una lista de opciones al igual queHtml.DropDownList - ¿Cómo añadir a la lista adicional <option>

Html.DropDownList("LogType", new SelectList(Model.LogTypeList, "ID", "Name", Model.SelectedLogType),"-- ALL --"); 

Como se puede ver que paso en una lista, sino también pasar en un argumento extra para agregar una opción adicional: "-- All --". El resultado es el siguiente:

<select name="LogType" id="LogType"> 
<option value="">-- ALL -- </option> 
<option value="1">Debug</option> 
<option value="2" selected="selected">Error</option> 
</select> 

¿Cómo puedo dar -- All -- un valor de 0 sin tener que construir manualmente la lista desplegable a mí mismo?

+1

posible duplicado de [¿Cómo puedo establecer un valor para la opción predeterminada con Html.DropDownList] (http://stackoverflow.com/questions/581805/how-do-i-set-a-value-for-the -default-option-with-html-dropdownlist) –

+0

Esto ha sido respondido en http://stackoverflow.com/a/581944/476786 – bPratik

Respuesta

5

No estoy seguro, pero, ¿por qué no se construye la lista justo antes de su @html.DropDownList

var myList = new SelectList(Model.LogTypeList, "ID", "Name", Model.SelectedLogType); 

y luego agrega el artículo que desees.

var myList.add(new selectItem("-- ALL --",0)); 

y, finalmente, pasar a su sintaxis y ver lo que esto dará lugar a

Html.DropDownList("LogType",myList); 

lo siento, esto es una respuesta rápida usando mi iPhone, no está seguro si va a arreglar el problema, pero Traté de ayudar tanto como pude.

+1

Debe verificar el código del elemento anexado. – Unw0und

3

he intentado hacer esto antes y terminar con el uso de jQuery:

$("#LogType").append($("<option />").val("0").html("-- All --")); 
1

Sólo por un enfoque diferente, me quedé sorprendido por la cantidad de respuestas en los foros hubo para esta misma pregunta, todo lo cual parecía demasiado complejo para lo que puede lograrse con facilidad en WebForms con AppendDataItems (concedidas, que es formularios web !).

Esto funcionó bien para mí hace unos momentos, mantener todo en línea y mantener la vista y preocupaciones modelo separado:

@Html.DropDownListFor(model => model.Operators, 
       new SelectList(new[] { 
        new {id=-1, name="Please select an operator"}} 
        .Union(Model.Operators 
          .Select(o=> new { id=o.Id, name=o.Name}) 
        ), "id", "name")) 

que hace como:

<select id="Operators" name="Operators"> 
    <option value="-1">Please select an operator</option> 
    <option value="1">Tony Bolton</option> 
    <option value="2">Joe Bloggs</option> 
</select> 
rendimiento

no ha comprobado etc., pero me pareció que valía la pena compartirlo.

Cuestiones relacionadas