2013-03-12 37 views
-2

我想排序下拉列表,但確保項目「其他」存在於排序的dropdownlist的末尾。我已嘗試使用Order by排除'Other',然後使用'union''other'附加到排序結果。但它不工作。排序下拉列表,但在排序列表末尾包含「其他」列表項目

+2

重複多次。在您的ORDER BY中使用CASE語句。 – bernie 2013-03-12 17:27:05

+0

當您使用UNION將查詢放在一起時,您只會在整個事物的末尾獲得一個ORDER BY。所以你需要其他的東西,比如SortOrder列(或者CASE語句)來把它們排列好。 – criticalfix 2013-03-12 17:36:59

回答

0

首先,感謝那些在這裏給出了寶貴建議的人。這更多的是SQL查詢構造的疑問。我遇到的問題是我無法在查詢中使用ORDER BY之後使用UNION,其結果將被用於填充ASP.NET控件下拉列表。我發現的簡單解決方案是在SELECT語句中添加一個分配給ddlitem.value的新僞列,然後在該列中添加ORDER BY。竅門是將ddlitem.value指定爲999(或一個大值)(ddlitem.text - OTHER),以便在使用該僞列執行ORDER BY時始終結束。

0

沒有關於您正在使用的控件的更多信息(嘗試使用您的控件集名稱更新您的標籤!)不可能給您一個代碼來解決您的問題的具體示例。 這是因爲有多個圖層可以訂購您的下拉列表數據;該控件可能會保留來自SQL數據集的原始順序,但它可能不是。它可以有一個默認設置,以字母排列元素等... 我已經成功地在兩種方式處理這種情況:

1.通常可以將數據元素單獨添加到下拉列表中列表中的控制初始化代碼。您只需通過代碼添加「其他」到列表的末尾沿

ddlUnknownControl.Add(new ddlElement("Other")

行2,當你只需要在你想一些數據進行排序(通常比一個更具體的方式一個值),您實際上可以在您的表中放置一列專門用作訂購數據的索引。小心這個!它必須仔細維護,然後,爲了保證您的訂單得到保留,您需要將您的信息作爲一組標籤,值對和訂單中的值排序(其中值爲索引和標籤是文本信息)。