-1

私は3つのテーブルを持っています:セクション、クラス、学生...今、ドロップダウンリストでセクションを選択して選択クラスに基づいてドロップダウンリストにstudentNameをロードしたい[ここでセクションフィールド、クラスフィールドはドロップダウンリストで選択され、StudentNameも表示されますドロップダウンリストに入る]

これが私のテーブルのプレビューです

セクションエンティティ

Id,SectionTitle,Capacity

クラスエントリー

Id,ClassTitle,SectionId

学生情報

Id,FullName,ClassId,Section

それは私にとって非常に役に立ちます。この状況で誰かが私を助けてくれるなら、私はすべて試してみましたが、複数のインデックス処理のために機能していません。

4

1 に答える 1

0

ASPX:

<asp:DropDownList ID="classdropdown" runat="server" OnSelectedIndexChanged="classdropdown_SelectedIndexChanged" AutoPostBack="true" />

<asp:DropDownList ID="sectiondropdown" runat="server" OnSelectedIndexChanged="sectiondropdown_SelectedIndexChanged" AutoPostBack="true" />

<asp:DropDownList ID="studentnamedropdown" runat="server" />

C#:

protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        this.LoadClassDropdown();
    }
}

// set initial values
private void LoadClassDropdown()
{
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT Id,SectionTitle FROM SectionEnty", "your connection string"))
    {    
        using (DataSet ds = new DataSet())
        {
            da.SelectCommand.Connection.Open();
            da.Fill(ds);
            da.SelectCommand.Connection.Close();

            classdropdown.DataSource = ds;
            classdropdown.DataValueField = "Id";
            classdropdown.DataTextField = "SectionTitle";
            classdropdown.DataBind();
        }
    }
}

protected void classdropdown_SelectedIndexChanged(object sender, EventArgs e)
{
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT Id,ClassTitle FROM ClassEntry WHERE SectionId = @SectionId", "your connection string")
    {
        da.SelectCommand.Parameters.Add(new SqlParameter("@SectionId", sectiondropdown.SelectedValue));

        using (DataSet ds = new DataSet())
        {
            da.SelectCommand.Connection.Open();
            da.Fill(ds);
            da.SelectCommand.Connection.Close();

            sectiondropdown.DataSource = ds;
            sectiondropdown.DataValueField = "Id";
            sectiondropdown.DataTextField = "ClassTitle";
            sectiondropdown.DataBind();
        }
    }
}

protected void sectiondropdown_SelectedIndexChanged(object sender, EventArgs e)
{
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT Id,FullName FROM StudentInfo WHERE ClassId = @ClassId", "your connection string"))
    {
        da.SelectCommand.Parameters.Add(new SqlParameter("@ClassId", classdropdown.SelectedValue));

        using (DataSet ds = new DataSet())
        {
            da.SelectCommand.Connection.Open();
            da.Fill(ds);
            da.SelectCommand.Connection.Close();

            studentnamedropdown.DataSource = ds;
            studentnamedropdown.DataValueField = "Id";
            studentnamedropdown.DataTextField = "FullName";
            studentnamedropdown.DataBind();
        }
    }
}

これで、studentname ドロップダウンに、選択したクラスとセクションのリストが含まれます。

ご不明な点がございましたら、お知らせください...

于 2013-05-27T13:36:50.403 に答える