2012-07-19 88 views
0

我在更新面板中有一个DDL,并且我无法获取SelectedItemChanged方法以在将数据绑定到它时触发。在Page_Load中,我有:dropdownlist不会触发SelectedItemChanged

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> 
+1

重复的问题:http://stackoverflow.com/questions/70109/dropdownlist-doesnt-postback-on-selectedindexchanged ...只需将'AutoPostBack =“true”'添加到您的DropDownList定义。 – daniloquio 2012-07-19 16:03:25

回答

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> 
+0

愚蠢的错误。谢谢。 – user1468537 2012-07-19 16:05:02

+0

不客气,不用担心它会发生一些使用。 – Adil 2012-07-19 16:13:56

3

请设置属性的AutoPostBack =“真”在你的DropDownList如果你还没有,这将使下拉列表回发任何的SelectedIndex变化