use*_*799 12 c# asp.net data-binding drop-down-menu
我如何List<>将对象数据绑定到DropDownList并根据对象中的属性设置SelectedItem?
例如,说我有一个
List<Person>
人有3个属性......
Person .Name (string)
.Id (int)
.Selected (bool)
Run Code Online (Sandbox Code Playgroud)
我希望第一个Selected == true的是列表中的SelectedItem.
Cha*_*ian 20
试试这个:
List<Person> list = new List<Person>();
// populate the list somehow
if ( !IsPostBack )
{
DropDownList ddl = new DropDownList();
ddl.DataTextField = "Name";
ddl.DataValueField = "Id";
ddl.DataSource = list;
ddl.DataBind();
ddl.SelectedValue = list.Find( o => o.Selected == true ).Id.ToString();
}
Run Code Online (Sandbox Code Playgroud)
如果您不能保证始终至少有一个选定的项目,那么您将需要通过检查来自list.Find()呼叫的返回值来单独处理它,以确保它不是null.
另外,DropDownList ddl = new DropDownList(); 如果webform已经声明,则不需要:
<asp:DropDownList ID="ddl" runat="server" />
Run Code Online (Sandbox Code Playgroud)