【解決方法】C# でドロップダウンを選択した後に値を自動変更する

[ad_1]

プロジェクトに問題があります。

私は2つのドロップダウンリストを作成しました。ドロップダウンリストの値は、別のドロップダウンリストの選択された値によって設定され、

dropdownlist1 で値を選択したときに、dropdownlist2 の値が変更されることを望みます

どうすればこれを解決できますか?

私が試したこと:

これは私のコードです、

私のaspx.csで

protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack == false)
            {
                Bind_CheckList();
            }
            Listcompany();
           
        }

private void Listcompany()
{
    ddl3.DataSource = comp.GetData();
    ddl3.DataTextField = "Company_Name";
    ddl3.DataValueField = "Company_ID";
    ddl3.DataBind();
    ddl3.Items.Insert(0, new ListItem("--Select--", ""));
}


protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
{
    string company = ddl3.SelectedValue.ToString();
    ddl1.DataSource = shift.GetDatashiftbycomp(company);
    ddl1.DataTextField = "Name_Shift";
    ddl1.DataValueField = "ID_Shift";
    ddl1.DataBind();
    ddl1.Items.Insert(0, new ListItem("--Select--", ""));
}

私のaspxで

 <asp:DropDownList ID="ddl3" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddl1_SelectedIndexChanged" >
    </asp:DropDownList>
<pre> <asp:DropDownList ID="ddl1" runat="server" AutoPostBack="false" ></asp:DropDownList>

解決策 3

Listcompany コールは if (!Page.IsPostBack) ブロック。 現状では、ポストバックするたびにリストを再バインドしています。つまり、 SelectedIndexChanged イベントは発生しません。

C#
protected void Page_Load(object sender, EventArgs e)
{
    if (!Page.IsPostBack)
    {
        Bind_CheckList();
        Listcompany();
    }
}

また、Visual Studio デザイナーによって提供される既定値をそのまま受け入れるのではなく、コントロールに意味のある ID を与える必要があります。 ID ddl1ddl3 これらのコントロールが何に使用されるかについては何も教えてくれません。

ID がイベント ハンドラー名と一致しない場合は特に問題になります。誰が推測できるでしょうか。 ddl1_SelectedIndexChanged を扱います SelectedIndexChanged のイベント ddl3?

解決策 4

チェックボックスをオンにすると、チェックボックスのリストが表示されます

[ad_2]

コメント

タイトルとURLをコピーしました