0

更新パネル内にDDLがあり、データをバインドするときにSelectedItemChangedメソッドを起動できません。Page_Loadには次のものがあります。

ddl.DataSource = GetList();
ddl.DataBind();

GetList()を返しますList<string>

値はすべてそこにありますが、1つを選択しても何も起こりません。

私が手動でそれらをそのように入れる場合:

ddl.Items.Add("1");
ddl.Items.Add("2");
ddl.Items.Add("3");

それはうまくいく、なぜ?

データをバインドすると、以下の方法は実行されません。

protected void ddl_SelectedIndexChanged(object sender, EventArgs e)
    {
        string test = ddl.SelectedItem.Text;
    }

<asp:DropDownList runat="server" ID="ddl" Width="150px"
OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>
4

2 に答える 2

4

デフォルトでは、Change asp:DropDownListは、多くの場合必要ないため、ボタンのようなポストバックを実行しません。ポストバックを取得するには、trueに設定する必要があります。

変化する

<asp:DropDownList runat="server" ID="ddl" Width="150px"
OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>

<asp:DropDownList runat="server" ID="ddl" Width="150px" AutoPostBack="true"
OnSelectedIndexChanged="ddl_SelectedIndexChanged"></asp:DropDownList>
于 2012-07-19T16:00:27.077 に答える
3

ドロップダウンリストにプロパティAutoPostBack="true"を設定していない場合は、設定してください。これにより、ドロップダウンでSelectedIndexの変更をポストバックできます。

于 2012-07-19T15:57:59.260 に答える