2011-01-25 45 views
11

similar examplede ordenar alfabéticamente una SelectList en MVC

El problema es que mi selectlist podría tener datos (además de su formato es algo así como [Ford IV 200 xyx]) en ella, que me quiero retirar (por sólo los registros que muestran que tiene una valor de bit de verdad en su 3ra columna, que también es algo que necesito saber cómo hacerlo), el gran problema es si el usuario agrega, digamos, otro Ford que ahora se mostraría completamente en la parte inferior del menú desplegable que se vería muy desordenado y podría incluso ser pasado por alto por lo que cualquier idea?

p.s. agregué jquery a las etiquetas en caso de que fuera una posible solución, ya que puedo usar eso en este proyecto.

Editar - Para que el filtro de valor de bit tercera columna aquí está la solution

Respuesta

10

gracias a Darin yo era capaz de llegar a la solución ligeramente modificada de a su vez, que conducirá a mí resolver esto en la máquina virtual al igual que

List<Reason> reasonList = _db.Reasons.OrderBy(m=>m.Description).ToList(); 
     ReasonList = new SelectList(reasonList, "Id", "Description"); 
17

se puede utilizar el método de OrderBy extensión:

<%: Html.DropDownListFor(
    x => x.ModelId, 
    new SelectList(Model.VehicleModels.OrderBy(x => x.Name), "Id", "Name"), 
    "-- Select a model --" 
) %> 
+0

ligero problema, creo que el uso de LinqToSql donde estoy usando edmx como tal x.ModelId para mí es x. (Nombre de tabla que también estoy almacenando). (Nombre de columna de la tabla que en realidad está grabando el valor) y al hacer esto o mezclarlo todavía hay un problema con (x => x.Name) ya que solo tiene x. (Equals/GetHashCode/GetType/Selected/Text/ToString/Value) y desde la tabla I probado en solo tiene 2 columnas (Id y descripción) Supongo que está destinado a coincidir con el nombre de la columna que se ordenará en este caso Descripción, en caso de que intente x.Text, x.Value y x.Selected y. .. – Myzifer

+0

todos resultaron en "DataBinding: 'System.Web.Mvc.SelectListItem' no contiene una propiedad con el nombre 'Id'." ese error – Myzifer

+0

descubrí otra forma de hacerlo, que estaba en mi modelo de vista donde había hecho la lista de selección (public SelectList [assign random name así por ejemplo ModelList] {get; set;} List <[insert table name]> [insert nombre aleatorio para list por ejemplo modList] = db. [nombre de tabla insertado pluralizado usado justo antes, por lo que si era Modelo antes de que sea Modelos ahora] .OrderBy (x => x.Description) .ToList(); ModelList = new SelectList (modList , "Id" "Descripción"); si esto altera o no la forma en que respondería las preguntas que no sé, pero si corrige el error comentado anterior o agrega detalles ... – Myzifer

0
List<string> TestList = new List<string>(); 

foreach(//SomeCode) 
{ 

TestList.Add(//Item); 

} 

TestList = TestList.OrderBy(n => n.TestItem).ToList(); 
0

En caso de que tenga una plantilla de editor para su lista desplegable, esta ordenará en función del texto. selectList.OrderBy(x => x.Text)

Cuestiones relacionadas