数据绑定下拉列表显示System.Data.DataRowView而不是项目?

时间:2011-05-26 19:40:45

标签: c# .net asp.net drop-down-menu

我的页面上有3个下拉列表,都使用相同的连接字符串,这是有用的。虽然第三个DDL工作,但前两个只显示System.Data.DataRowView而不是表中的项目。为什么?这不是select命令;表和行名称是正确的,即使我用select命令替换工作DDLs命令,结果也是一样的。代码如下:

第一个功能失调的ddl:

<asp:Panel ID="CustPanel" runat="server" BorderWidth="4px" CssClass="myPanelCss" Width="700px">
    <asp:Label ID="LblCustlist" runat="server" Text="Customer: " />
    <asp:DropDownList ID="DropDownList1" runat="server"  DataSourceID="SqlCustNameSource">
        <asp:ListItem Value="0" Text="Choose Customer" Selected="True"></asp:ListItem>
    </asp:DropDownList>
    <asp:SqlDataSource ID="SqlCustNameSource" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT [CustName] FROM [Customer]"></asp:SqlDataSource>
    <asp:Button ID="BtnCustShow" runat="server"  Text="New Customer" OnClick="BtnCustShow_Click" />
</asp:Panel>

第二个功能失调的ddl:

<asp:Panel ID="BroPanel" runat="server" BorderWidth="4px" CssClass="myPanelCss" Width="700px">
    <asp:Label ID="LblBrolist" runat="server" Text="Broker: " />
    <asp:DropDownList ID="DdlBro" runat="server" DataSourceID="SqlBroNameSource">
        <asp:ListItem Value="0" Text="Choose Customer" Selected="True"></asp:ListItem>
    </asp:DropDownList>
<asp:SqlDataSource ID="SqlBroNameSource" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT [BroName] FROM [Broker]"></asp:SqlDataSource>
    <asp:Button ID="BtnBroShow" runat="server" Text="New Broker" OnClick="BtnBroShow_Click" />
</asp:Panel>

工作ddl:

<asp:DropDownList ID="DdlCustState" runat="server"  DataSourceID="SqlDataSource2" DataTextField="State" DataValueField="State" />
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:MyConnectionString %>" SelectCommand="SELECT [State] FROM [States]">
</asp:SqlDataSource>

正如我所说,如果我将前两个的select命令与第三个功能ddl相同,我仍然会遇到同样的失败。有什么想法吗?

2 个答案:

答案 0 :(得分:4)

你有一个有效的DataTextField =“State”和DataValueField =“State”,但没有一个有效。

答案 1 :(得分:0)

编辑:忽略我之前发布的信息。

上面的海报说的是正确的。你是DDL的人都错过了他们     DataTextField = “”     DataValueField = “”

用于填充列表本身值的字段。