DropDownList with GridView ASP.NET

本文关键字:NET ASP GridView with DropDownList | 更新日期: 2024-07-27 18:26:00

我有一个DropDownList,它与我们的SQL服务器数据绑定,ID为"名字"answers"姓氏"。然后我添加了一个GridView并将数据源配置到这个中

从[cb1]WHERE([ID]=@ID)选择[ID]、[fName]、[iName]

基本上,我想让它做的是,当有人从下拉列表中选择名字时,它会在GridView中弹出ID、名字和姓氏。

问题是,当它被加载时,DropDownList是空的,没有数据,并且GridView也丢失了。

这是标记。

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
        DataKeyNames="ID" DataSourceID="SqlDataSource1" 
        EmptyDataText="There are no data records to display.">
        <Columns>
            <asp:CommandField ShowEditButton="True" ShowSelectButton="True" />
            <asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" 
                SortExpression="ID" />
            <asp:BoundField DataField="fName" HeaderText="fName" SortExpression="fName" />
            <asp:BoundField DataField="lName" HeaderText="lName" SortExpression="lName" />
        </Columns>
    </asp:GridView>
    <asp:DropDownList ID="DropDownList1" runat="server" 
        DataSourceID="SqlDataSource1" DataTextField="ID" DataValueField="ID">
    </asp:DropDownList>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:comboConnectionString1 %>" 
        DeleteCommand="DELETE FROM [cb1] WHERE [ID] = @ID" 
        InsertCommand="INSERT INTO [cb1] ([fName], [lName]) VALUES (@fName, @lName)" 
        ProviderName="<%$ ConnectionStrings:comboConnectionString1.ProviderName %>" 
        SelectCommand="SELECT [ID], [fName], [lName] FROM [cb1] WHERE ([ID] = @ID)" 
        UpdateCommand="UPDATE [cb1] SET [fName] = @fName, [lName] = @lName WHERE [ID] = @ID">
        <DeleteParameters>
            <asp:Parameter Name="ID" Type="Int32" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="fName" Type="String" />
            <asp:Parameter Name="lName" Type="String" />
        </InsertParameters>
        <SelectParameters>
            <asp:ControlParameter ControlID="DropDownList1" Name="ID" 
                PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
        <UpdateParameters>
            <asp:Parameter Name="fName" Type="String" />
            <asp:Parameter Name="lName" Type="String" />
            <asp:Parameter Name="ID" Type="Int32" />
        </UpdateParameters>
    </asp:SqlDataSource>
</p>

DropDownList with GridView ASP.NET

Table Contains id,Name,department and age

 Department :
        <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" 
            DataSourceID="SqlDataSource2" DataTextField="Department" 
            DataValueField="Department">
        </asp:DropDownList>
        <br />
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
            ConnectionString="<%$ ConnectionStrings:demoConnectionString %>" 
            SelectCommand="SELECT DISTINCT [Department] FROM [profile]">
        </asp:SqlDataSource>
        <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
            DataKeyNames="id" DataSourceID="SqlDataSource3">
            <Columns>
                <asp:BoundField DataField="id" HeaderText="id" InsertVisible="False" 
                    ReadOnly="True" SortExpression="id" />
                <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
                <asp:BoundField DataField="Department" HeaderText="Department" 
                    SortExpression="Department" />
                <asp:BoundField DataField="Age" HeaderText="Age" SortExpression="Age" />
            </Columns>
        </asp:GridView>
        <asp:SqlDataSource ID="SqlDataSource3" runat="server" 
            ConnectionString="<%$ ConnectionStrings:demoConnectionString %>" 
            SelectCommand="SELECT * FROM [profile] WHERE ([Department] = @Department)">
            <SelectParameters>
                <asp:ControlParameter ControlID="DropDownList1" Name="Department" 
                    PropertyName="SelectedValue" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>
Result:
![Result][1]

  [1]: https://i.stack.imgur.com/WrfP7.png

问题是,当它被加载时,DropDownList是空的,并且没有数据,并且GridView也丢失。

当您的页面第一次加载时,它会触发此Sql查询(SELECT [ID], [fName], [lName] FROM [cb1] WHERE ([ID] = @ID),以返回sqldatasource1的结果,该结果由网格和组合使用

意味着不会返回任何结果,因为@ID将为null或0

因此,您将拥有(SELECT [ID], [fName], [lName] FROM [cb1] WHERE ([ID] = @ID OR [ID] IS NOT NULL)