【发布时间】:2010-08-31 07:03:34
【问题描述】:
我需要在 gridview 中显示枚举的名称 按数据表返回其数值
我将它用于其他列
<asp:BoundField DataField="Name" HeaderText="User Name" />
我需要将它用于枚举以显示枚举性别的字符串值
<asp:BoundField DataField="Gender" HeaderText="Gender" />
【问题讨论】:
我需要在 gridview 中显示枚举的名称 按数据表返回其数值
我将它用于其他列
<asp:BoundField DataField="Name" HeaderText="User Name" />
我需要将它用于枚举以显示枚举性别的字符串值
<asp:BoundField DataField="Gender" HeaderText="Gender" />
【问题讨论】:
试试这个解决方案
<asp:TemplateField HeaderText="Category">
<ItemTemplate>
<div>
<%# Enum.GetName(typeof(GlobalLibrary.Constants.Category),Convert.ToInt32(Eval("Category"))) %>
</div>
</ItemTemplate>
</asp:TemplateField>
【讨论】:
它帮助了我:) 然后我发现这个更简单
<asp:TemplateField HeaderText="Gender">
<ItemTemplate><%#(MyGenderEnum)Eval("Gender")%></ItemTemplate>
</asp:TemplateField>
【讨论】:
如果您更喜欢 VB.NET:
<asp:TemplateField HeaderText="Status" SortExpression="VisibilityStatus">
<ItemTemplate>
<%# [Enum].GetName(GetType(VisibilityStatusEnum), Eval("VisibilityStatus"))%>
</ItemTemplate>
</asp:TemplateField>
【讨论】:
这个版本在 VB.NET 中对我有用:
<asp:TemplateField HeaderText="Gender">
<ItemTemplate><%# CType(Eval("Gender"), Gender).ToString() %></ItemTemplate>
</asp:TemplateField>
有趣的是,它不适用于 DirectCast 而不是 CType,并且在我添加 ToString() 之前仍然显示整数。在我的情况下,我还必须将命名空间添加到我的枚举中。
【讨论】: