技术开发 频道

.Net 通用枚举绑定下拉列表等方法

  【IT168 技术文档】做了一个项目,其中用了很多枚举。在页面上单独写下拉列表,这样觉得很不统一。所以google了一下枚举绑定下拉列表的方法,发现都不是通用的方法。于是修改了网上的代码写成了一个通用的枚举绑定列表方法。下面贴代码。

     /**//// <summary>
    
/// 用枚举绑定列表
    
/// </summary>
    
/// <param name="col">控件名</param>
    
/// <param name="eumeName">枚举名</param>
    public static void BindData(Control col, string enumName)
    {
        System.Reflection.Assembly asm
= Assembly.Load("App_Code"); //枚举是在App_Code里      
        Type type = asm.GetType(enumName);
        FieldInfo[] fields
= type.GetFields();
        
int count = fields.Length;

        
if (col is DropDownList)
        {
            DropDownList ddl
= (DropDownList)col;
            ddl.Items.Clear();
            
for (int i = 1; i < count; i++)
            {
                FieldInfo field
= fields[i];
                ListItem item
= new ListItem(field.Name);
                ddl.Items.Add(item);
            }
        }
        
else if (col is HtmlSelect)
        {
            HtmlSelect ddl
= (HtmlSelect)col;
            ddl.Items.Clear();
            
for (int i = 1; i < count; i++)
            {
                FieldInfo field
= fields[i];
                ListItem item
= new ListItem(field.Name);
                ddl.Items.Add(item);
            }
        }
        
else if (col is CheckBoxList)
        {
            CheckBoxList ddl
= (CheckBoxList)col;
            ddl.Items.Clear();
            
for (int i = 1; i < count; i++)
            {
                FieldInfo field
= fields[i];
                ListItem item
= new ListItem(field.Name);
                ddl.Items.Add(item);
            }
        }
        
else if (col is RadioButtonList)
        {
            RadioButtonList ddl
= (RadioButtonList)col;
            ddl.Items.Clear();
            
for (int i = 1; i < count; i++)
            {
                FieldInfo field
= fields[i];
                ListItem item
= new ListItem(field.Name);
                ddl.Items.Add(item);
            }
        }
        
else if (col is ListBox)
        {
            ListBox ddl
= (ListBox)col;
            ddl.Items.Clear();
            
for (int i = 1; i < count; i++)
            {
                FieldInfo field
= fields[i];
                ListItem item
= new ListItem(field.Name);
                ddl.Items.Add(item);
            }
        }
    }

  如里枚举是写在项目里面的话 上面 System.Reflection.Assembly asm = Assembly.Load("App_Code");改写成 System.Reflection.Assembly asm = Assembly.Load("成程集");

0
相关文章