下拉列表的选定值在asp.net中不会更改

时间:2013-06-09 06:35:14

标签: asp.net database drop-down-menu

我在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”,但它保持为“”?有人可以帮忙吗?

由于

3 个答案:

答案 0 :(得分:0)

您可以尝试设置如下:

dPrereq1.Items.FindByValue(prereq).Selected = true

答案 1 :(得分:0)

我发现了问题:看起来问题是空格字符。

答案 2 :(得分:0)

问题是,在向数据库添加新项目时,我不小心放了一个空格,我修复了它