如何绑定枚举

1.要有一个枚举,此例为GameEasyType,注意[Description()]必须加上

2.需要一个枚举转换成字典的处理类TransEnum

 

// 转换类
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Reflection;
using  System.ComponentModel;

namespace  DuwCompontents
{
    
public class TransEnum
    
{
        
        
public TransEnum(Enum e){
            
        }


        
public static Dictionary<stringstring> Trans(Type type) {
            Dictionary
<stringstring> dic = new Dictionary<stringstring>();
            
if (type.IsEnum)
            
{
                FieldInfo[] fis 
= type.GetFields(BindingFlags.Static | BindingFlags.Public);
                
foreach (FieldInfo fi in fis)
                
{
                    
object[] objs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
                    
if (objs.Length > 0)
                    
{
                        dic.Add(fi.Name, (objs[
0as DescriptionAttribute).Description);
                    }

                    
else
                    
{
                        dic.Add(fi.Name, fi.Name);
                    }

                }

            }

            
return dic;
        }


        
public static Dictionary<intstring> IntTrans(Type type)
        
{
            Dictionary
<intstring> dic = new Dictionary<intstring>();
            
if (type.IsEnum)
            

                 FieldInfo[] fis 
= type.GetFields(BindingFlags.Static | BindingFlags.Public);
                 
foreach (FieldInfo fi in fis)
                 
{
                     
object[] objs = fi.GetCustomAttributes(typeof(DescriptionAttribute), false);
                     
if (objs.Length > 0)
                     
{
                         dic.Add((
int)Enum.Parse(type,fi.Name), (objs[0as DescriptionAttribute).Description);
                     }

                     
else
                     
{
                         dic.Add((
int)Enum.Parse(type, fi.Name), fi.Name);
                     }

                 }

            }

            
return dic;
        }

        
    }

}


// 枚举类
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.ComponentModel;

namespace  DuwDb
{
    
public enum GameEasyType
    
{
        
/// <summary>
        
/// 不使用
        
/// </summary>

        [Description("全部")]
        Nonuse 
= -1,

        
/// <summary>
        
/// 简单
        
/// </summary>

        [Description("简单")]
        Easy
=0,
        
/// <summary>
        
/// 普通
        
/// </summary>

        [Description("普通")]
        Common 
= 1 ,
        
/// <summary>
        
/// 困难
        
/// </summary>

        [Description("困难")]
        Difficile
=2
    }

}


// 实现类
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Web.UI.WebControls;
using  DuwDb;

namespace  DuwControls
{
    
public class GameDefault:SkinedControl
    
{
        
private Repeater repEasy;//难易程度单选框
        protected override void AttachChildControls()
        
{
            repEasy 
= base.FindControl("repEasy"as Repeater;
            System.Collections.Generic.Dictionary
<intstring> dic = DuwCompontents.TransEnum.IntTrans(typeof(DuwDb.GameEasyType));
            repEasy.DataSource 
= dic;
            repEasy.ItemDataBound 
+= new RepeaterItemEventHandler(repEasy_ItemDataBound);
            repEasy.DataBind();
        }


        
//绑定难易分类
        void repEasy_ItemDataBound(object sender, RepeaterItemEventArgs e)
        
{
            
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
            
{
                KeyValuePair
<intstring> pair = (KeyValuePair<intstring>)e.Item.DataItem;
                Literal litEasy 
= e.Item.FindControl("litEasy"as Literal;
                litEasy.Text 
= pair.Value;
            }

        }

    }

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值