3

我在 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,因此在我“水合”对象后,ItemStatusUI 上的列未按字母顺序排序。用户希望这在 UI 上按字母顺序排序。

我想不出办法。我使用 Asp.net 和 C# 在此先感谢

4

1 回答 1

1

我认为您在这里有两个选择:

  1. 创建一个包含 Text 值的视图,并使用它来填充 Grid。这样,您可以对文本值进行排序,而不是尝试对数字键值进行排序。
  2. 拉回所有结果,并在内存中排序。

除此之外,我真的看不出你有任何选择。如果您尝试对关键列进行排序,它总是会按数字排序 - 因为那是列中的数据。

于 2013-08-15T12:21:09.630 回答