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