【问题标题】:formatting enum in gridview在gridview中格式化枚举
【发布时间】:2010-08-31 07:03:34
【问题描述】:

我需要在 gridview 中显示枚举的名称 按数据表返回其数值

我将它用于其他列

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

我需要将它用于枚举以显示枚举性别的字符串值

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

【问题讨论】:

    标签: c# asp.net gridview


    【解决方案1】:

    试试这个解决方案

    Enum.GetName Method

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

    【讨论】:

    • 我正在尝试这样的事情 但事实并非如此
    • Thanx man its wrking ... with templatefield 我使用的是boundfield,不知道同样的东西在那里没有工作
    【解决方案2】:

    它帮助了我:) 然后我发现这个更简单

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

    【讨论】:

      【解决方案3】:

      如果您更喜欢 VB.NET:

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

      【讨论】:

        【解决方案4】:

        这个版本在 VB.NET 中对我有用:

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

        有趣的是,它不适用于 DirectCast 而不是 CType,并且在我添加 ToString() 之前仍然显示整数。在我的情况下,我还必须将命名空间添加到我的枚举中。

        【讨论】:

          猜你喜欢
          • 2016-02-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-05-25
          • 1970-01-01
          • 2014-05-29
          相关资源
          最近更新 更多