C# 无法在页面加载时设置dropdownlist

C# 无法在页面加载时设置dropdownlist,c#,asp.net,.net,visual-studio-2010,C#,Asp.net,.net,Visual Studio 2010,我第一次遇到这种问题 我正在从数据集加载页面时设置dropdownlist的值 但这是自动设置0索引。。。。。 我的代码: ddlEbitda.SelectedValue = objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString(); 我在即时窗口查看 objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString(); “在40-60%之间”(来自数据集的值正确) 我尝试了许多不同的代码来解决这个问题

我第一次遇到这种问题

我正在从数据集加载页面时设置dropdownlist的值 但这是自动设置0索引。。。。。 我的代码:

ddlEbitda.SelectedValue = objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString();
我在即时窗口查看

objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString();
“在40-60%之间”(来自数据集的值正确)

我尝试了许多不同的代码来解决这个问题:

    ddlEbitda.ClearSelection();
    string Ebitda = objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString();
    ddlEbitda.Items.FindByValue(Ebitda).Selected = true;


    string Ebitda = objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString();
    ddlEbitda.SelectedIndex = ddlEbitda.Items.IndexOf(ddlEbitda.Items.FindByValue(Ebitda));
但仍然无法解决这个问题……事实是我无法理解问题所在……

这应该行得通

string value=objDataset.Tables[0].Rows[0]["acq_ebitda"].ToString();
ddlEbitda.Items.FindByValue(value).Selected = true;
但请确保在将下拉列表与数据源绑定时,此时
acq\u ebitda
应为
DataValueField

如果它是
DataTextField
,那么您应该尝试以下方法

ddlEbitda.Items.FindByText(value).Selected = true;

确保在Page_Load方法中此代码块内填充/绑定DropDownList

    If (!IsPostBack)
    {
    }
并在设置所选项目后立即执行

    ddlEbitda.SelectedValue

确保下拉列表是否正确绑定到数据集并填充数据。特别要确保指定的值在项目列表中。您可以轻松地在VS中使用quick watch进行检查,以确保所分配的值位于下拉项中。因为您的操作方式正常

是否有
列表项
值在40-60%之间?或者它的
.Value
是其他值,而它的
.Text
在40-60%之间?其
.Value
必须
在40-60%
之间,或者只能设置
.Text
(这样其
.Value
将与
.Text
相同)。此外,外壳必须与DB返回的相同。谢谢。。。如果(qsAcq_id!=0){if(!IsPostBack)LoadData();}您是否将
DropDownList
控件绑定到
objDataSet
?“ddlEbitda”是在代码隐藏中以编程方式创建的还是在ASPX页面中以声明方式创建的?您还可以确认
ddlEbitda.ListItem
对象的
Text
Value
属性是否包含相同的文本。Thank friend问题非常小-当我选择插入空格的值时,使用选项“高达1000万美元”,我可以删除此空格…我可以使用Trim()吗同样在保存和检索数据时。再次感谢。是的,您可以使用
trim
删除字符串开头和结尾的空格。
    ddlEbitda.SelectedValue