-2

我想对下拉列表进行排序,但确保“其他”项出现在排序的末尾dropdownlist。我尝试在列表中使用 Order by 排除 “其他”,然后使用“联合”将“其他”附加到排序结果。但它不起作用。

4

2 回答 2

0

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

1.通常可以在控件初始化代码中将数据元素单独添加到下拉列表中。只需使用以下行的代码将“其他”添加到列表的末尾

ddlUnknownControl.Add(new ddlElement("Other")

2.当您只有一种特定的方式来对某些数据进行排序时(通常不止一个一次性值),您实际上可以在表中专门放置一列用作对数据进行排序的索引。小心这个!它必须小心维护,然后,为了保证您的订单得到保留,您需要将您的信息作为一组标签、值对和值控制内的顺序拉到下拉列表中(其中值是索引和标签是文本信息)。

于 2013-03-12T18:10:06.067 回答
0

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

于 2013-04-25T18:52:06.563 回答