技术开发 频道

用反射+特性列出所有的枚举变量及其描述信息,绑定到DropDownList上

    【IT168 技术文档】在设计实体类的时候,通常我们会把某些字段设置为枚举值,例如性别:

public enum Sex:int
{
    Male = 'M',Female = 'W',NotRestrict = 'A'
}   
     这样好处不用说,通常是为了直观的考虑,还有限制输入的好处;如果强制用int转换,还以用System.Enum.IsDefined() 来判断枚举是否被定义,但是麻烦的是在界面UI上绑定的时候,我们通常要这样写:

<asp:DropDownList Runat="server" id="ddlSex">
        <asp:ListItem Value="M">男</asp:ListItem>
        <asp:ListItem Value="W">女</asp:ListItem>
        <asp:ListItem Value="A">不限</asp:ListItem>
    </asp:DropDownList>   
    然后如果要取得枚举的值,则:
  Sex sex = (Sex)ddlSex.SelectedValue.ToCharArray()[0];
     解决描述的问题很简单,使用XML文档就可以了。
    只要在项目输出的时候输出XML文档,并且文档的名字跟DLL的名字一致就可以了。

    需要丰富枚举定义:
/// <summary>
    /// 性别
    /// </summary>
    public enum Sex:int
    {   
        /**//// <summary>
        /// 男
        /// </summary>
        Male = 'M',
        /**//// <summary>
        /// 女
        /// </summary>
        Female = 'W',
        /**//// <summary>
        /// 不限
        /// </summary>
        NotRestrict = 'A'
    }
    这样虽然2的问题解决了,1、3还是没有解决。    
    解决的办法是,使用   
0
相关文章