1

我有以下 asp.net DropDownList:

<asp:DropDownList ID="ddlRole" runat="server" DataSourceID="dsRole"
        DataTextField="RoleCode" DataValueField="ID" Font-Names="Verdana" Font-Size="11px"
        ForeColor="#2D2D2D" ClientIDMode="Static" Width="120px" CssClass="selectedRole"
        OnDataBound="ddlEntity_DataBound" AppendDataBoundItems="true" >
        <asp:ListItem Value="-1">--- Select ---</asp:ListItem>
</asp:DropDownList>
<asp:ObjectDataSource ID="dsRole" runat="server" SelectMethod="GetList" TypeName="Roles"
     OldValuesParameterFormatString="original_{0}"></asp:ObjectDataSource>

我收到“SelectedValue 无效,因为它不存在于项目列表中”错误,说明“值”不正确。我引用的 ID 是 1,它肯定存在于我从中调用的数据库中。

我已经尝试过在互联网和其他论坛上引用的这个问题的解决方案,但我仍然遇到同样的错误。我假设这与我的 SelectedValue 从 -1 开始的事实有关?

有什么建议么?

4

1 回答 1

-2

我决定这样做是为了“选择”是传输数据集中的第一行。您可以在 MSSQL 中使用 UNION 来完成。

请求结果是这样的:

SELECT '-1' AS id, 'Select' AS name UNION ALL SELECT id, name FROM users

必须给列别名,否则 DropDownList 根本不明白id在哪里,名字在哪里

 <asp:DropDownList ID="MainCat" runat="server" AutoPostBack="True" 
         DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="id">
 </asp:DropDownList>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
         ConnectionString="<%$ ConnectionStrings:ConnectionString1%>" 
             SelectCommand="SELECT id,name FROM users">
 </asp:SqlDataSource>

我需要做同样的西装

于 2012-04-25T10:02:42.530 回答