Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择ASP.NET DropDownList以使DetailsView显示结果_Asp.net_Sql Server - Fatal编程技术网

选择ASP.NET DropDownList以使DetailsView显示结果

选择ASP.NET DropDownList以使DetailsView显示结果,asp.net,sql-server,Asp.net,Sql Server,我使用了2个dropdownlist,它是显示SQL Server数据列表的父子控件。当我选择第二个dropdownlist时,DetailsView将显示我选择的结果。如果我选择数据库名为Database3,我希望DetailsView显示来自Database3的所有结果。我试着做了一些编码,但detailsview没有显示任何内容。请帮忙!这是我的下拉列表代码 <asp:DropDownList ID="DropDownServerName" runat="server" AutoPo

我使用了2个dropdownlist,它是显示SQL Server数据列表的父子控件。当我选择第二个dropdownlist时,DetailsView将显示我选择的结果。如果我选择数据库名为Database3,我希望DetailsView显示来自Database3的所有结果。我试着做了一些编码,但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>
然后我在SQLDataSource1中添加SelectParameter,该参数来自为此选择的dropdownlist

<SelectParameters>
            <asp:ControlParameter ControlID="DropDownDatabase" Name="DatabaseName" PropertyName="SelectedValue" />
        </SelectParameters


下面是我使用相同需求构建的页面的一些代码。我有两个下拉列表,一个是客户姓名,另一个是他们购买的产品。detailsview将显示在第二个下拉列表中选择的任何产品的完整详细信息

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

例如,sqldatasource1(请参见代码底部)将ControlID设置为“ddlProducts”,而PropertyName设置为“SelectedValue”。使用sqlDataSource1的detailsview使用Products dropdownlist的选定值运行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>

客户:
产品
<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>