c# - 对下拉列表进行排序

标签 c# database entity-framework

我正在使用 Entity Framework 数据库,我想从表中填充我的下拉列表,但顺序正确。

现在我正在使用代码:

var databaseList = from p in db.TECHNICAL_SKILLS
                   where p.skill_type == "Database"
                   select new EmployeeTechnicalSkillInfo
                       {
                           TechnicalSkillId = p.technical_skill_id,
                           SkillType = p.skill_type,
                           SkillName = p.skill_name
                       };

        List<object> sDataValue = new List<object>();
        sDataValue.Add("- Select -");
        sDataValue.Remove("Other");

        foreach (var vData in databaseList)
        {
            sDataValue.Add(vData.SkillName);
        }

        sDataValue.Add("Other");

        DropDownListDB.DataSource = sDataValue.ToArray();
        DropDownListDB.DataBind(); 

这是解决方案

    var databaseList = from p in db.TECHNICAL_SKILLS
           where p.skill_type == "Database"
           orderby p.skill_name != "Other" descending, p.skill_name
           select new EmployeeTechnicalSkillInfo
               {
                   TechnicalSkillId = p.technical_skill_id,
                   SkillType = p.skill_type,
                   SkillName = p.skill_name
               };

最佳答案

删除条目 -Select-从列表中将其作为第一项附加到您的 List<object> :

List<object> sDataValue = new List<object>();
sDataValue.Add("-Select-");
foreach (var vData in databaseList){}

我认为这是最简单的方法。

编辑

那么你将使用if/else ,也许还有

foreach (var vData in databaseList){} //fill your list
sDataValue.Add("-Other-");

关于c# - 对下拉列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15656191/

相关文章:

c# - 日期时间字符串格式和 CultureInfo

c# - 如何从 View 中的 ViewBag 获取 bool 值?

java - 有没有办法避免 HibernateOptimisticLockingFailureException?

sql-server - Doctrine + SQL Server 存储过程

c# - EF 如何使用 .include() 查询更多实体并使用存储库模式

c# - 识别 Facebook 域模型中的实体和值对象

c# - 找到两个多边形之间最短笛卡尔距离的最快方法是什么

mysql - SQL:在一个表中返回多对多

c# - Entity Framework 在第一次查询时大约需要 30 秒

asp.net-mvc - 如何将两个 LINQ 连接表从 Controller 传递到 View