从列表<对象>绑定下拉列表
本文关键字:绑定 下拉列表 对象 列表 | 更新日期: 2023-09-27 18:30:18
我有一个对象列表
var listOfUsr = new List<User>();
listOfUsr = GetUserByAgentId("some_id");
if (listOfUsr != null)
{
DropDownList.DataSource = listOfModels;
//DropDownList.DataTextField = "how to set value_from User.Name ?";
//DropDownList.DataValueField = "how to set value_from User.ID ?";
DropDownList.DataBind();
}
如何从对象属性设置文本和值字段?
您只需要在DataTextField
和DataValueField
中设置列名即可。在您的情况下,Name
和ID
是用户列表对象的列名。
if (listOfUsr != null)
{
DropDownList.DataSource = listOfModels;
DropDownList.DataTextField = "Name";
DropDownList.DataValueField = "ID";
DropDownList.DataBind();
}
你可以试试这个:
DropDownList.DataTextField = "Name";
DropDownList.DataValueField = "ID";
我想,从您的评论中可以得出结论,类型 User
的对象有两个属性,分别称为 Name
和 ID
,这些是您想要显示的文本和值。
使用 ComboBox 并设置 DropDownStyle =ComboBoxStyle.DropDownList;
试试这个代码:
var listOfUsr = new List<User>();
listOfUsr = GetUserByAgentId("some_id");
comboBox1.DropDownStyle =ComboBoxStyle.DropDownList;
comboBox1.DataSource=lstOfUsr;
comboBox1.DisplayMember="Description";
还可以拖动 BindingSource 类型的对象,并在此模式下使用它:
var listOfUsr = new List<User>();
listOfUsr = GetUserByAgentId("some_id");
bindingSourceListOfObject.DataSource = lstOfUsr;
comboBox1.DropDownStyle =ComboBoxStyle.DropDownList;
comboBox1.DataSource=bindingSourceListOfObject;
comboBox1.DisplayMember="Description";
使用BindingSource在复杂的场景中具有许多可能性和灵活性。