1

WinForms でポストバックがどのように機能するかはわかりませんがComboBox、ユーザーの選択に基づいて更新できるようにしたいと考えています。

現在、最初の選択を変更してComboBoxも、2 番目のドロップダウンの項目は変更されません。(デフォルトでは最初のアイテムのみを表示)

O はこれをどのように変更できますか?

私が持っているものへのコード:

public ContentUploader()
{
    InitializeComponent();
    using (SqlConnection con = new SqlConnection(conString))
    {
        con.Open();
        using (SqlDataAdapter sda = new SqlDataAdapter("SELECT ... re.OverallID = 1", conString))
        {
            DataTable dt = new DataTable();
            sda.Fill(dt);
            sections_drp.ValueMember = "ID";
            sections_drp.DisplayMember = "DisplayName";
            sections_drp.DataSource = dt;
        }
    }
    sections_drp.SelectedIndexChanged += (o, e) => FillFirstChildren();
}
public void FillFirstChildren()
{
    firstChild_drp.Items.Add("Select Item");
    firstChild_drp.SelectedIndex = 0;
    string sectionId = sections_drp.SelectedValue.ToString();
    using (SqlConnection con = new SqlConnection(conString))
    {
        con.Open();
        using (SqlDataAdapter sda = new SqlDataAdapter("SELECT ... em.ItemID = ("+ sectionId +")", conString))
        {
            DataTable dt = new DataTable();
            sda.Fill(dt);
            firstChild_drp.ValueMember = "ID";
            firstChild_drp.DisplayMember = "DisplayName";
            firstChild_drp.DataSource = dt;
        }
    }
    FillSecondChildren();
}
4

1 に答える 1

2

Winformsポストバックは含まれていません。SelectedIndexChanged2 番目のドロップダウンをフィルタリングするには、 (またはItemまたはValue) イベントに関連付ける必要があります。

例:

    public void FillFirstChildren()
    {
        //Your Fill Logic Here
        ...

        //Call FillSecondChildren on selection change
        firstChild_drop.SelectedIndexChanged += (o, e) => FillSecondChildren();
    }
于 2013-07-30T14:25:16.417 に答える