我想对下拉列表进行排序,但确保项目“其他”出现在已排序的dropdownlist
的末尾。我尝试在列表中使用Order by,不包括'Other',然后使用'union'将'other'附加到已排序结果。但它不起作用。
答案 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时,它总是在最后结束。