【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);
}
}
}
/// 用枚举绑定列表
/// </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("成程集");