注意:我使用的添加方法是一种扩展方法 - 希望不会对下面的问题产生影响。
我有一个资源对象,其中包含两个字符串属性。 使用来自MS SQL DB的SQL查询来提取资源对象。 我想在下拉列表中列出这些对象,但是以自定义方式显示这些属性(即不是.ToString()结果)。
这就是我填充下拉列表的方式:
private void PopulateResourceDropDowns()
{
lstResources.Items.Clear();
lstResources.Items.Add("---Select---", Guid.Empty);
if (Agent != null) {
IEnumerable<Resource> res_list = Agent.Resources;
foreach (Resource res in res_list) {
lstResources.Items.Add(res.companyID + " :: " + res.Name, res.ID);
}
}
}
我并不完全熟悉IEnumerables,我担心上面的实现导致在foreach循环的每次传递中调用SQL查询。 在这种情况下,我是否正确使用可枚举?或者我应该使用List吗?
答案 0 :(得分:0)
您应该使用由
等类组成的列表来处理此类任务类
public Class A
{
public int EmployeeId{set;get;}
public string EmployeeName{set;get;}
}
数据检索和数据绑定
List<A> objList=new List<A>();
objList=getData(); // retvire data from database
lstResources.DataSource=objList;
lstResources.DataTextField="EmployeeName";
lstResources.DataValueField ="EmployeeId";
lstResources.DataBind();
lstResources.Items.Insert(0,new ListItem("--Select--","0"));
事情变得如此简单。