C# FormView中的依赖DropDownList
我试图在表单视图中创建两个下拉列表,其中第二个下拉列表中显示的值取决于第一个下拉列表。第一个列表包含sql表“Classes”中包含的类号,第二个下拉列表包含同一sql表“Classes”中的类节。我希望能够选择一个类号,并且只弹出与该类号对应的部分 示例类表:C# FormView中的依赖DropDownList,c#,asp.net,visual-studio-2010,C#,Asp.net,Visual Studio 2010,我试图在表单视图中创建两个下拉列表,其中第二个下拉列表中显示的值取决于第一个下拉列表。第一个列表包含sql表“Classes”中包含的类号,第二个下拉列表包含同一sql表“Classes”中的类节。我希望能够选择一个类号,并且只弹出与该类号对应的部分 示例类表: Number: Section: SLN: 210 1 A-1 210 2 A-2 210 3 A-3 340
Number: Section: SLN:
210 1 A-1
210 2 A-2
210 3 A-3
340 1 B-1
340 7 B-7
我目前有第一个正确设置使用的号码列表
<asp:DropDownList ID="ddlNumber" runat="server"
DataSourceID="SqlDSClasses"
AutoPostBack="True" DataTextField="Number" DataValueField="Number">
</asp:DropDownList>
for the drop down and
<asp:SqlDataSource ID="SqlDSClasses" runat="server"
ConnectionString="<%$ ConnectionStrings:ReinstatementCS %>"
SelectCommand="SELECT [Prefix], [Number], [Location], [SLN],
[StartTime], [EndTime], [ClassDay], [ClassCredit], [ClassSection] FROM [Classes]">
</asp:SqlDataSource>
for the corresponding SqlDataSource
看看这篇文章: 它解释了如何实现你想要的
另外,您也可以使用AJAX:看看这篇文章: 它解释了如何实现你想要的
另外,您也可以使用AJAX:我知道了怎么做: 我的C#代码现在看起来像这样:
protected void ddlNumber_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlNumber = FVStudentClass.FindControl("ddlNumber") as DropDownList;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ReinstatementCS"].ConnectionString);
SqlCommand myCommand = new SqlCommand("SELECT DISTINCT ClassSection FROM Classes WHERE Number = " + ddlNumber.Text);
myCommand.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(myCommand);
DataTable dt = new DataTable();
da.Fill(dt);
DropDownList ddlSection = FVStudentClass.FindControl("ddlSection") as DropDownList;
ddlSection.DataSource = dt;
ddlSection.DataTextField = "ClassSection";
ddlSection.DataValueField = "ClassSection";
ddlSection.DataBind();
ddlSection.Items.Insert(0, "--Select--");
}
以及my.aspx下拉列表:
号码:
<asp:DropDownList ID="ddlNumber" runat="server" DataSourceID="SqlDSClasses" AutoPostBack="True" DataTextField="Number" DataValueField="Number" onselectedindexchanged="ddlNumber_SelectedIndexChanged">
</asp:DropDownList>
另一页:
(忽略第一个答案中的所有div)我想出了方法:
我的C#代码现在看起来像这样:
protected void ddlNumber_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlNumber = FVStudentClass.FindControl("ddlNumber") as DropDownList;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ReinstatementCS"].ConnectionString);
SqlCommand myCommand = new SqlCommand("SELECT DISTINCT ClassSection FROM Classes WHERE Number = " + ddlNumber.Text);
myCommand.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(myCommand);
DataTable dt = new DataTable();
da.Fill(dt);
DropDownList ddlSection = FVStudentClass.FindControl("ddlSection") as DropDownList;
ddlSection.DataSource = dt;
ddlSection.DataTextField = "ClassSection";
ddlSection.DataValueField = "ClassSection";
ddlSection.DataBind();
ddlSection.Items.Insert(0, "--Select--");
}
以及my.aspx下拉列表:
号码:
<asp:DropDownList ID="ddlNumber" runat="server" DataSourceID="SqlDSClasses" AutoPostBack="True" DataTextField="Number" DataValueField="Number" onselectedindexchanged="ddlNumber_SelectedIndexChanged">
</asp:DropDownList>
另一页:
(忽略第一个答案中的所有div)
protected void ddlNumber_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddlNumber = FVStudentClass.FindControl("ddlNumber") as DropDownList;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["ReinstatementCS"].ConnectionString);
SqlCommand myCommand = new SqlCommand("SELECT DISTINCT ClassSection FROM Classes WHERE Number = " + ddlNumber.Text);
myCommand.Connection = con;
SqlDataAdapter da = new SqlDataAdapter(myCommand);
DataTable dt = new DataTable();
da.Fill(dt);
DropDownList ddlSection = FVStudentClass.FindControl("ddlSection") as DropDownList;
ddlSection.DataSource = dt;
ddlSection.DataTextField = "ClassSection";
ddlSection.DataValueField = "ClassSection";
ddlSection.DataBind();
ddlSection.Items.Insert(0, "--Select--");
}
<asp:DropDownList ID="ddlNumber" runat="server" DataSourceID="SqlDSClasses" AutoPostBack="True" DataTextField="Number" DataValueField="Number" onselectedindexchanged="ddlNumber_SelectedIndexChanged">
</asp:DropDownList>
<asp:DropDownList ID="ddlSection" runat="server" AutoPostBack="True" onselectedindexchanged="ddlSection_SelectedIndexChanged">
</asp:DropDownList>