2010-08-31 20 views
6

necesito para mostrar el nombre de la enumeración en gridview por tabla de datos devuelve su valor numéricoenumeración formato en gridview

estoy usando esto para otras columnas

<asp:BoundField DataField="Name" HeaderText="User Name" /> 

i necesidad de utilizarlo para enumeración para visualizar el valor de la cadena de enumeración Género

<asp:BoundField DataField="Gender" HeaderText="Gender" /> 

Respuesta

8

Pruebe esta solución

Enum.GetName Method

<asp:TemplateField HeaderText="Category"> 
<ItemTemplate> 
<div> 
<%# Enum.GetName(typeof(GlobalLibrary.Constants.Category),Convert.ToInt32(Eval("Category"))) %> 
</div> 
</ItemTemplate> 
</asp:TemplateField> 
+0

estoy intentando algo como esto pero no se está escribiendo de forma incorrecta – vakas

+0

revise la respuesta actualizada está funcionando para mí –

+0

Thanx man está escribiendo ... con templatefield estaba usando boundfield, dnt knw y lo mismo no se está retorciendo allí – vakas

1

Me :) ayudó Y entonces encontraron esta simple

<asp:TemplateField HeaderText="Gender"> 
    <ItemTemplate><%#(MyGenderEnum)Eval("Gender")%></ItemTemplate> 
</asp:TemplateField> 
1

Y si lo prefiere VB.NET:

<asp:TemplateField HeaderText="Status" SortExpression="VisibilityStatus"> 
     <ItemTemplate> 
      <%# [Enum].GetName(GetType(VisibilityStatusEnum), Eval("VisibilityStatus"))%> 
     </ItemTemplate> 
</asp:TemplateField> 
0

Esta versión funcionó para mí en VB .NET:

<asp:TemplateField HeaderText="Gender"> 
    <ItemTemplate><%# CType(Eval("Gender"), Gender).ToString() %></ItemTemplate> 
</asp:TemplateField> 

Curiosamente, no funcionaba con DirectCast en lugar de CType, y todavía mostraba enteros hasta que agregué ToString(). También tuve que agregar espacio de nombres a mi enumeración en mi caso.