我正在使用实体框架数据库,我希望从一个表中填充我的下拉列表,但顺序是正确的。
现在我使用的代码是:
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
};发布于 2013-03-27 10:38:07
您可以尝试使用带有布尔值的orderby。
orderby p.skill_name != "Other" descending, p.skill_name在您的代码=>中
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
};
List<object> sDataValue = new List<object>();
sDataValue.Add("- Select -");
foreach (var vData in databaseList)
{
sDataValue.Add(vData.SkillName);
}
DropDownListDB.DataSource = sDataValue.ToArray();
DropDownListDB.DataBind(); 发布于 2013-03-27 10:10:31
从列表中删除条目-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-");发布于 2013-03-27 10:13:25
就这么做吧:
将-Select-和Other从databaseList中删除如下:
var databaseList = from p in db.TECHNICAL_SKILLS
where p.skill_type == "Database"
&& p.skill_name.ToLower() !="other"
&& p.skill_name.ToLower() !="-select-"
select new EmployeeTechnicalSkillInfo
{
TechnicalSkillId = p.technical_skill_id,
SkillType = p.skill_type,
SkillName = p.skill_name
};然后这样做:
DropDownListDB.DataSource = sDataValue.ToArray().OrderBy(s=>s);
DropDownListDB.Items.Insert(0, "-Select-");
DropDownListDB.Items.Add("Other");如果您必须从数据库中引入-Select-和其他字段,那么将它们绑定到DropDownList,然后删除它们,然后再将它们插入到适当的位置是很小的开销。
您根本不需要从数据库中选择这两行。这样会更有效率。
https://stackoverflow.com/questions/15656191
复制相似问题