如何从另一个下拉列表中填充下拉列表

时间:2014-02-19 19:42:42

标签: c# asp.net

我正在研究C#,Visual studio 2012

我有两个下拉列表。

在第一个下拉列表中,它显示学生姓名列表(来自表[学生]).....在第二个下拉列表中显示专业(来自表[课程])。

这两个将来自数据库,其中包含两个表(学生和课程)。

假设当用户从第一个下拉列表中选择学生时,在另一个下拉列表中,它应该显示该学生的相关专业。

如何使用asp.net Web应用程序执行此操作而无需编程。

感谢。

1 个答案:

答案 0 :(得分:4)

我认为你的意思是说没有代码而不是没有编程

您可以使用SQL DataSources。

enter image description here

学生表

StudentId | StudentName
----------+-------------
     1    |  Jon
     2    |  Marry

CourseId | CourseName | StudentId
---------+------------+----------
     1   |   Physic   |     1
     2   |   Math     |     1
     3   |   Physic   |     2
     4   |   English  |     2

ASPX

<asp:DropDownList ID="DropDownListStudent" runat="server"
    DataSourceID="StudentSqlDataSource"
    DataTextField="Name" DataValueField="StudentId" AutoPostBack="True">
</asp:DropDownList>
<asp:SqlDataSource ID="StudentSqlDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT StudentId, StudentName FROM [Student]">
</asp:SqlDataSource>

<asp:DropDownList ID="DropDownListCourse" runat="server"
    DataSourceID="CourseSqlDataSource" DataTextField="CourseName" 
    DataValueField="CourseId">
</asp:DropDownList>
<asp:SqlDataSource ID="CourseSqlDataSource" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [Course] WHERE StudentId=@StudentId">
    <SelectParameters>
        <asp:ControlParameter ControlID="DropDownListStudent" 
            PropertyName="SelectedValue"
            Name="StudentId" Type="Int32" DefaultValue="1" />
    </SelectParameters>
</asp:SqlDataSource>

注意: 确保DropDownListStudent的 AutoPostBack =“True”