2

2つのドロップダウンリストがあります。1つはページの読み込み時に入力され、もう1つは最初のリストで値が選択された場合にのみ入力されます。最初のドロップダウンリストは次のように定義されます。

<asp:DropDownList ID = "base_ddl" runat="server" ToolTip="Base" OnSelectedIndexChanged = "BaseSelected">
//  snip...
</asp:DropDownList>

次に、2番目のドロップダウンリスト(secondary_ddl)がOnSelectedIndexChangedメソッドに入力されBaseSelectedます。

    public void BaseSelected(object sender, EventArgs e)
    {
        if (base_ddl.SelectedValue == "-1")
        {
            secondary_ddl.Visible = false;
        }
        else 
        {
            secondary_ddl.Items.Clear();

            // extract information to populate dropdown here
            // snip.
            IList<InfoContainer> info = getInfoBasedOnSelected(base_ddl.Value);

            foreach (InfoContainer i in info)
            {
                secondary_ddl.Items.Add(new ListItem(i.name, i.value));
            }
        }
    }

これは機能せず、この質問につながります:なぜですか?OnSelectedIndexChanged他のドロップダウンの関数からそのドロップダウンを動的に更新するにはどうすればよいですか?

4

1 に答える 1

1

の最初のセットAutoPostBack="True"プロパティbase_ddl

その後

secondary_ddl.Items.Clear();
IList<InfoContainer> info = getInfoBasedOnSelected(base_ddl.Value);
secondary_ddl.DataTextField = "name";
secondary_ddl.DataValueField = "value";
secondary_ddl.DataSource = info;
secondary_ddl.DataBind();
于 2013-03-18T18:01:57.667 に答える