dropdownlist不会在SelectedItemChanged上触发

时间:2012-07-19 15:56:21

标签: c# asp.net drop-down-menu

我在更新面板中有一个DDL,当我将数据绑定到它时,我无法触发SelectedItemChanged方法。在Page_Load中我有:

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

GetList()返回List<string>

这些值都存在,但是当我选择一个时没有任何反应。

如果我要像这样手动放入它们:

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>

2 个答案:

答案 0 :(得分:4)

默认情况下,更改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>

答案 1 :(得分:3)

如果你没有,请在你的DropDownList上设置属性AutoPostBack =“true”,这将允许下拉列表回发任何SelectedIndex更改