按字母顺序排序MVC中的SelectList

时间:2011-01-25 16:36:21

标签: c# jquery asp.net-mvc visual-studio-2010 asp.net-mvc-2

similar example

问题是我的选择列表中可能有数据(加上它的格式类似于[Ford IV 200 xyx]),我想要退出(通过仅显示其第3列中的位值为true的记录)我需要弄清楚如何做的事情),最大的问题是,如果用户加上说另一个福特现在将显示在下拉的底部,它会看起来非常混乱,甚至可能被忽视所以任何想法?

P.S。添加jquery到标签,以防这是一个可能的解决方案,因为我能够在这个项目中使用它。

编辑 - 对于第3列位值滤波器,这里是solution

4 个答案:

答案 0 :(得分:20)

您可以使用OrderBy扩展名方法:

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

答案 1 :(得分:10)

感谢Darin我能够提出他稍微修改过的解决方案,而这导致我在VM中解决这个问题

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

答案 2 :(得分:0)

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

foreach(//SomeCode)
{

TestList.Add(//Item);

}

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

答案 3 :(得分:0)

如果您有下拉列表的编辑器模板,则会根据文本对其进行排序。 selectList.OrderBy(x => x.Text)

相关问题