我的任務是對combobox不區分大小寫的產品項列表進行排序。在combobox中不區分大小寫的項目(SelectList)
鑑於文件:
@Html.DropDownListFor(m => m.ProductId, ViewData["Products"] as SelectList,
@Resources.App_GlobalResources.Resource.Common_SelectItem)
在控制器我試圖2個實施方式:
1)
var products = new SelectList(GetProducts().OrderBy(a => a, new CaseInsensitiveComparer()),
"id", "name", selectedProductId);
ViewData["Products"] = products;
public class CaseInsensitiveComparer : IComparer<Product>
{
public int Compare(Product productX, Product productY)
{
return string.Compare(productX.Name,productY.Name,StringComparison.OrdinalIgnoreCase);
}
}
2)
var orderedProducts = GetProducts().OrderBy(p => p.Name.ToLower()).ToList();
var products = new SelectList(orderedProducts, "id", "name", selectedProductId)
ViewData["Products"] = products;
預計:列表排序不區分大小寫 現在:列表排序區分大小寫
但預期任何實施不起作用。有任何想法嗎?提前致謝。
如果如預期它不工作,(1)它是如何工作的;(2)是什麼預期? –
我已經更新了這個問題 –
你的代碼對我來說很不錯。你確定你沒有得到這個結果,因爲你接收數據的順序? –