Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.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
C# FormView中的依赖DropDownList_C#_Asp.net_Visual Studio 2010 - Fatal编程技术网

C# FormView中的依赖DropDownList

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

我试图在表单视图中创建两个下拉列表,其中第二个下拉列表中显示的值取决于第一个下拉列表。第一个列表包含sql表“Classes”中包含的类号,第二个下拉列表包含同一sql表“Classes”中的类节。我希望能够选择一个类号,并且只弹出与该类号对应的部分

示例类表:

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>