对下拉列表进行排序,但在排序列表的末尾包含“其他”作为列表项

时间:2013-03-12 17:25:54

标签: sql

我想对下拉列表进行排序,但确保项目“其他”出现在已排序的dropdownlist的末尾。我尝试在列表中使用Order by,不包括'Other',然后使用'union''other'附加到已排序结果。但它不起作用。

2 个答案:

答案 0 :(得分:0)

如果没有关于您正在使用的控件的更多信息(尝试使用您的控件集名称更新您的标签!),则无法为您提供解决问题的特定代码示例。 这是因为有多个图层可以在其中订购下拉列表数据;控件可能是从SQL数据集中保留原始顺序,但可能不是。它可以有一个默认设置来按字母顺序排列元素等... 我过去曾以两种方式成功处理过这样的案件:

1.通常可以将数据元素分别添加到控件初始化代码的下拉列表中。只需使用

行代码将“其他”添加到列表末尾即可

ddlUnknownControl.Add(new ddlElement("Other")

2.当您只想要一种特定的方式来订购某些数据时(通常超过一次关闭值),您实际上可以在表中专门放置一列用作订购的索引数据。小心这个!必须仔细维护,然后,为了保证您的订单得到保留,您需要将您的信息作为一组标签,价值对和控制范围内的价值(其中值为索引和标签是文本信息。)

答案 1 :(得分:0)

首先,感谢那些在这里提出宝贵建议的人。这更像是对SQL查询构造的怀疑。我遇到的问题是我在查询中无法在ORDER BY之后使用UNION,其结果是用于填充ASP.NET控件下拉列表。我找到的简单解决方案是在SELECT语句中添加一个分配给ddlitem.value的新假列,然后在该列中添加ORDER BY。诀窍是将ddlitem.value分配给(ddlitem.text - OTHER)的999(或一个大值),以便在使用该假列​​进行ORDER BY时,它总是在最后结束。