-1

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

谢谢

4

3 回答 3

0

您可以尝试如下设置:

dPrereq1.Items.FindByValue(prereq).Selected = true
于 2013-06-09T07:19:19.483 回答
0

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

于 2013-06-10T17:58:46.380 回答
0

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

于 2013-06-30T15:21:02.043 回答