对枚举列进行排序,其值在数据库中存储为int

时间:2013-08-14 23:48:12

标签: c# enums

我在asp.net Gridview上有一个列,其类型是枚举。我在UI上显示枚举的描述,并将int值保存在数据库中。这是我的枚举定义

public enum ItemStatus : int
{
   [DescriptionAttribute("New Item")]
   New = 0,
   [DescriptionAttribute("Closed")]
   Closed = 1,
   [DescriptionAttribute("Not Assigned")]
   Unassigned = 2,
   [DescriptionAttribute("Assigned")]
   Assigned = 3
} 

我将此ItemStatus保存为数据库中的Int,用户在UI上看到枚举字符串值(如未分配)。用户应该能够在Grid中的此列上进行排序(Asc,Desc)。

由于我在数据库中将其保存为int,因此在我“保湿”对象后,UI上的ItemStatus列不按字母顺序排序。用户希望在UI上按字母顺序对其进行排序。

我想不出办法。我使用Asp.net和C# 提前致谢

1 个答案:

答案 0 :(得分:1)

我认为你有两个选择:

  1. 创建一个包含Text值的视图,并使用它来填充Grid。这样,您可以对文本值进行排序,而不是尝试对数字键值进行排序。
  2. 撤回所有结果,并在内存中排序。
  3. 除此之外,我真的看不到你有任何选择。如果您尝试对键列进行排序,它将始终按数字排序 - 因为这是列中的数据。