根据另一个DropDownList中的选择填充DropDownList?

时间:2015-03-14 10:42:38

标签: c# asp.net

好的,所以这就是我想要做的。我有2 DropDownLists。一个是DataBound。一个是Deprtmnt,另一个是Doctor。我想要做的是,当我从DropDownList Department中选择Deprtmnt例如 Cardiology 时,另一个DropDownList应填充Doctors仅属于心脏病学部。 当我点击部门心脏病学时,医生的名字不会显示在另一个下拉列表中 这就是我到目前为止所做的。 Apsx代码:

<asp:DropDownList ID="Deprtmnt" runat="server" Height="32px" Width="227px">
                             <asp:ListItem>(None)</asp:ListItem>
                             <asp:ListItem>Opthalomology</asp:ListItem>
                             <asp:ListItem>Dermatology</asp:ListItem>
                             <asp:ListItem>Cardiology</asp:ListItem>
                             <asp:ListItem>Neurology</asp:ListItem>
                             </asp:DropDownList>
                        <br />
                        <br />
                        <asp:DropDownList ID="DropDownList1" runat="server" Height="32px" Width="229px" DataSourceID="SqlDataSource1" DataTextField="Sname" DataValueField="Sname">
                             </asp:DropDownList>
                             <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SMCConnectionString %>" SelectCommand="SELECT Sname FROM StaffRec WHERE (Designation = N'Doctor' AND Department = N'Deprtmnt.SelectedItem.Text')"></asp:SqlDataSource>

c#c​​ode:

string str = "INSERT INTO Appointments(Apname,Department,Doctor,Date) values (@Apname,@Department,@Doctor,@Date)";
        cmd = new SqlCommand(str, con);
        cmd.Parameters.AddWithValue("@Apname", name.Text);
        cmd.Parameters.AddWithValue("@Department", Deprtmnt.SelectedItem.Text);
        cmd.Parameters.AddWithValue("@Doctor", DropDownList1.SelectedItem.Text);
        cmd.Parameters.AddWithValue("@Date", TextBox1.Text);
        con.Open();

其余的代码没有关联,所以我不发布它。 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

@SanaQureshi:为什么不使用$ .ajax方法调用并在C#代码中创建一个web方法。我相信它是动态填充下拉菜单的最佳方式。

答案 1 :(得分:0)

使用AutoPostBack=true 您需要在ControlParameter中使用SelectParameters

<asp:DropDownList ID="Deprtmnt" AutoPostBack="true" runat="server" Height="32px" Width="227px">
                             <asp:ListItem>(None)</asp:ListItem>
                             <asp:ListItem>Opthalomology</asp:ListItem>
                             <asp:ListItem>Dermatology</asp:ListItem>
                             <asp:ListItem>Cardiology</asp:ListItem>
                             <asp:ListItem>Neurology</asp:ListItem>
                             </asp:DropDownList>

    <asp:DropDownList ID="DropDownList1" runat="server" Height="32px" Width="229px" DataSourceID="SqlDataSource1" DataTextField="Sname" DataValueField="Sname">
     </asp:DropDownList>

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:SMCConnectionString %>" SelectCommand="SELECT Sname FROM StaffRec WHERE (Designation = N'Doctor' AND Department = @department)">
    <SelectParameters>
            <asp:ControlParameter ControlID="Deprtmnt" PropertyName="SelectedValue"
                Name="Department" Type="String" DefaultValue="Opthalomology" />
        </SelectParameters>
    </asp:SqlDataSource>