项目中用到的小技巧

1 显示枚举的值:<%# (CN80s.DDPM.Model.Enum.EnumBidCardStatus)(int)Eval("PerpaidCard_Status")%>

2 为下拉框绑定枚举:  

            GetEnumList(ddlBids); 

       void GetEnumList(DropDownList ddl)

        {

            foreach (EnumBidCardType s in System.Enum.GetValues(typeof(EnumBidCardType)))

            {

                ddl.Items.Add(new ListItem(s.ToString(), ((int)s).ToString()));

            }

        } 

 

 

        this.ddlBids.DataSource = GetEnumList(typeof(EnumBidCardType), true);

                this.ddlBids.DataTextField = "Text";

                this.ddlBids.DataValueField = "Value";

                this.ddlBids.DataBind(); 

        public static List<ListItem> GetEnumList(Type enumType, bool allAllOption)

        {


            if (enumType.IsEnum == false)

            {

                return null;

            }

            List<ListItem> list = new List<ListItem>();

            if (allAllOption == true)

            {

                list.Add(new ListItem("--全部--", ""));

            }


            Type typeDescription = typeof(DescriptionAttribute);

            System.Reflection.FieldInfo[] fields = enumType.GetFields();

            string strText = string.Empty;

            string strValue = string.Empty;

            foreach (FieldInfo field in fields)

            {

                if (field.IsSpecialName) continue;

                strValue = field.GetRawConstantValue().ToString();

                object[] arr = field.GetCustomAttributes(typeDescription, true);

                if (arr.Length > 0)

                {

                    strText = (arr[0] as DescriptionAttribute).Description;

                }

                else

                {

                    strText = field.Name;

                }


                list.Add(new ListItem(strText, strValue));

            }


            return list;

        } 

posted @ 2010-03-10 11:36  朗笑江湖  阅读(319)  评论(0编辑  收藏  举报