我使用了2个dropdownlist,它是显示SQL Server数据列表的父子控件。我想在选择第二个下拉列表时发生,DetailsView将显示我选择的结果。如果我选择数据库名称是Database3,我希望DetailsView显示来自数据库3的所有结果。我试过做一些编码,detailsview没有显示任何东西。请帮忙!在这里我的下拉列表代码,ASP.NET DropDownList被选为使DetailsView显示结果
<asp:DropDownList ID="DropDownServerName" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="ServerName" DataValueField="ServerName">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:Database_Shared_NotebookConnectionString %>" SelectCommand="SELECT [ServerName] FROM [tblServer]"></asp:SqlDataSource>
<br />
<br />
<br />
<asp:Label ID="Label10" runat="server" Text="Select Database:"></asp:Label>
<br />
<asp:DropDownList ID="DropDownDatabase" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource3" DataTextField="DatabaseName" DataValueField="DatabaseName" OnSelectedIndexChanged="DropDownDatabase_SelectedIndexChanged">
</asp:DropDownList>
<asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:Database_Shared_NotebookConnectionString %>" SelectCommand="SELECT [DatabaseName] FROM [tblDatabase] WHERE [ServerName] = @ServerName">
<SelectParameters>
<asp:ControlParameter ControlID="DropDownServerName" Name="ServerName" PropertyName="SelectedValue" />
</SelectParameters>
</asp:SqlDataSource>
然后在DetailsView控件,我不希望把太多的代码,你必须去看看所有的槽式,但在DetailsView有更新,删除和插入函数。它们来自DataSourceID,它是来自表数据库的BoundField的SQLDataSource1。在SQLDataSource1上的SelectCommand,I型,
SelectCommand="SELECT * FROM [tblDatabase] WHERE [DatabaseName] = @DatabaseName"
然后我SQLDataSource1从下拉列表中选择添加SelectParameter为此,
<SelectParameters>
<asp:ControlParameter ControlID="DropDownDatabase" Name="DatabaseName" PropertyName="SelectedValue" />
</SelectParameters