我的页面上有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相同,我仍然会遇到同样的失败。有什么想法吗?
答案 0 :(得分:4)
你有一个有效的DataTextField =“State”和DataValueField =“State”,但没有一个有效。
答案 1 :(得分:0)
编辑:忽略我之前发布的信息。
上面的海报说的是正确的。你是DDL的人都错过了他们 DataTextField = “” DataValueField = “”
用于填充列表本身值的字段。