2010-08-31 4 views
6

i besoin d'afficher le nom de ENUM dans gridview par table de données retourne sa valeur numériquemise en forme ENUM dans gridview

J'utilise ceci pour d'autres colonnes

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

je dois l'utiliser pour ENUM pour afficher la valeur de chaîne de ENUM Sexe

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

Répondre

8

Essayez cette solution

Enum.GetName Method

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

J'essaie quelque chose comme ceci mais pas infâme infac – vakas

+0

vérifier mis à jour répondre à son travail pour moi –

+0

Thanx l'homme son wrking ... avec templatefield j'utilisais boundfield, dnt knw y la même chose ne pas y traîner – vakas

1

Il m'a aidé :) Et puis je l'ai trouvé plus simple ce

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

Et si vous préférez VB.NET:

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

Cette version a fonctionné pour moi en VB .NET:

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

Itterestingly, il ne fonctionnait pas avec DirectCast au lieu de CType et affichait toujours des entiers jusqu'à ce que j'aie ajouté ToString(). J'ai aussi dû ajouter un espace de noms à mon énumération dans mon cas.