我在asp.net中有一个下拉列表,它有绑定到它的数据。这是:
<asp:DropDownList ID="dPrereq1" runat="server" DataSourceID="SqlDataSource2"
DataTextField="FullName" DataValueField="FullName">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT [CourseCode]+ ' ' + [CourseNumber] as
FullName FROM [CourseTable] ORDER BY [FullName]">
</asp:SqlDataSource>
此下拉列表中包含“CS 100", "CS 200
”等值。然后我在按钮点击事件中输入以下代码:
if (pCourseCode != "")
{
cbPreq1.Checked = true;
dPrereq1.Enabled = true;
string prereq=pCourseCode + " " + pCourseNumber;
dPrereq1.SelectedValue = prereq;
}
当我调试时,我看到prereq变为“CS 100”,并且已经存在于下拉列表中。但是在调试时我看到行"dPrereq1.SelectedValue = prereq;"
中的下拉列表dPrereq1的选定值没有改变,它显示“”。所以我得到错误说:
'dPrereq1' has a SelectedValue which is invalid because it does not exist in the list of items. Parameter name: value.
为什么我不能将下拉列表的值设置为“CS 100”,但它保持为“”?有人可以帮忙吗?
由于
答案 0 :(得分:0)
您可以尝试设置如下:
dPrereq1.Items.FindByValue(prereq).Selected = true
答案 1 :(得分:0)
我发现了问题:看起来问题是空格字符。
答案 2 :(得分:0)
问题是,在向数据库添加新项目时,我不小心放了一个空格,我修复了它