0

我在更新面板中有一个 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>
4

2 回答 2

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>
于 2012-07-19T16:00:27.077 回答
3

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

于 2012-07-19T15:57:59.260 回答