C# 设置数据绑定下拉列表的SelectedValue

C# 设置数据绑定下拉列表的SelectedValue,c#,asp.net,drop-down-menu,selectedvalue,databound,C#,Asp.net,Drop Down Menu,Selectedvalue,Databound,我有一个asp.net dropDownList,它在页面加载时自动绑定到sqlDataSource,以获得客户端类型的值。在页面加载时,我还创建了一个客户机对象,它的属性之一是ClientType。我试图根据客户机对象的ClientType属性的值设置ddl的SelectedValue,但未成功。我收到以下错误消息“System.ArgumentOutOfRangeException:'ddlClientType'有一个SelectedValue,该值无效,因为它不在项目列表中”。我知道这是因

我有一个asp.net dropDownList,它在页面加载时自动绑定到sqlDataSource,以获得客户端类型的值。在页面加载时,我还创建了一个客户机对象,它的属性之一是ClientType。我试图根据客户机对象的ClientType属性的值设置ddl的SelectedValue,但未成功。我收到以下错误消息“System.ArgumentOutOfRangeException:'ddlClientType'有一个SelectedValue,该值无效,因为它不在项目列表中”。我知道这是因为当我试图设置所选值时,列表尚未填充。有没有办法克服这个问题?谢谢大家!

您必须使用数据绑定事件,一旦数据绑定完成,它将被触发

protected void DropDownList1_DataBound(object sender, EventArgs e)
{
    // You need to set the Selected value here...
}
如果您确实希望在页面加载事件中看到该值,请在设置该值之前调用
DataBind()
方法

protected void Page_Load(object sender, EventArgs e)
{
    DropdownList1.DataBind();
    DropdownList1.SelectedValue = "Value";
}

在设置选定值之前,请检查项目是否在列表中,然后按索引选择它


我再次尝试使用数据绑定事件,但不再收到错误消息,但未选择该值。在使用ddl.DataSourceID=“”&之前,我尝试了您的第二个建议。我在没有数据源ID的情况下再次尝试。我还遇到了其他问题,比如在数据中留下空格,经过修整后,它终于起作用了。非常感谢。