2012-11-21 25 views
0

我使用了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 

回答

0

这里是一个网页我用同样的要求建立了一些代码。我有两个下拉列表,一个用于客户名称,另一个用于他们购买的产品。 detailsview将显示第二个下拉列表中选择的任何产品的完整详细信息。

我想这就是你要去的。请记住,当为第二个下拉列表和详细信息视图设置数据源时,必须确保使用向导创建where子句,以便从下拉列表控件中获取主键。

例如,sqldatasource1(请参阅代码底部)将ControlID设置为“ddlProducts”,PropertyName为“SelectedValue”。使用sqlDataSource1的detailsview使用Products下拉列表的选定值运行select语句。希望这有助于。

<table class="style4"> 
     <tr> 
      <td> 
       Customer:</td> 
      <td> 
     <asp:DropDownList ID="ddlCustomers" runat="server" 
      DataSourceID="ObjectDataSource1" AutoPostBack="True" DataTextField="Name" 
      DataValueField="CustomerID" AppendDataBoundItems="True" 
      onselectedindexchanged="ddlCustomers_SelectedIndexChanged"> 
      <asp:ListItem Text="--Select a customer--" Value="0"></asp:ListItem> 
     </asp:DropDownList> 
     <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" TypeName="CustomerDB" SelectMethod="GetCustomerList"> 
     </asp:ObjectDataSource> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="ddlCustomers" ErrorMessage="Please select a Customer" 
        InitialValue="0"></asp:RequiredFieldValidator> 
      </td> 
     </tr> 
     <tr> 
      <td> 
       Product</td> 
      <td> 
     <asp:DropDownList ID="ddlProducts" runat="server" AutoPostBack="True" 
      DataSourceID="ObjectDataSource2" DataTextField="Name" 
      DataValueField="ProductCode" AppendDataBoundItems="True" 
        onselectedindexchanged="ddlProducts_SelectedIndexChanged"> 
      <asp:ListItem Text="--Select a product--" Value="0"></asp:ListItem> 
     </asp:DropDownList> 
     <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" 
      SelectMethod="GetCustomerProducts" TypeName="ProductDB" 
      OldValuesParameterFormatString="original_{0}"> 
      <SelectParameters> 
       <asp:ControlParameter ControlID="ddlCustomers" Name="CustomerID" 
        PropertyName="SelectedValue" Type="Int32" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
        ControlToValidate="ddlProducts" ErrorMessage="Please select a product" 
        InitialValue="0"></asp:RequiredFieldValidator> 
      </td> 
     </tr> 

    </table> 


    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
     DataKeyNames="ProductCode" DataSourceID="SqlDataSource1" Height="50px" 
     Width="125px"> 
     <Fields> 
      <asp:BoundField DataField="ProductCode" HeaderText="ProductCode" 
       ReadOnly="True" SortExpression="ProductCode" /> 
      <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" /> 
      <asp:BoundField DataField="Version" HeaderText="Version" 
       SortExpression="Version" /> 
      <asp:BoundField DataField="ReleaseDate" HeaderText="ReleaseDate" 
       SortExpression="ReleaseDate" /> 
     </Fields> 
    </asp:DetailsView> 
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
     ConnectionString="<%$ ConnectionStrings:TechSupport_DataConnectionString %>" 
     SelectCommand="SELECT [ProductCode], [Name], [Version], [ReleaseDate] FROM [Products] WHERE ([ProductCode] = @ProductCode)"> 
     <SelectParameters> 
      <asp:ControlParameter ControlID="ddlProducts" Name="ProductCode" 
       PropertyName="SelectedValue" Type="String" /> 
     </SelectParameters> 
    </asp:SqlDataSource> 
相关问题