为什么在DropDownList上更改选择时未触发事件?

时间:2018-10-29 08:00:50

标签: c# asp.net .net dropdown

我有这个asp net drp框:

<asp:DropDownList ID="ddlLayersList"
        runat="server"
        BackColor="#FFFFC0"
        CssClass="form-control fullwidth" OnTextChanged="ddlLayersList_SelectedIndexChanged" >
</asp:DropDownList>

这是我填写投递箱的方式:

private void SetLayers(Dictionary<string, string> layers)
{
    ddlLayersList.DataSource = layers;
    ddlLayersList.DataValueField = "Key";
    ddlLayersList.DataTextField = "Value";
    ddlLayersList.DataBind();
    ddlLayersList.Items.Insert(0, "-Select Item-");
}

这是事件背后的代码:

protected void ddlLayersList_SelectedIndexChanged(object sender, EventArgs e)
{
}       

当我从下拉框中选择项目时,事件未触发。 知道我在DropDownList上更改选择时为何未触发事件吗?

2 个答案:

答案 0 :(得分:3)

您需要将AutoPostBack属性设置为True

<asp:DropDownList ID="ddlLayersList" AutoPostBack="True">

此属性的值:

  

true,如果每当   用户更改列表的选择;否则为假。默认值   是错误的

此外,您需要设置OnSelectedIndexChanged事件而不是OnTextChanged

<asp:DropDownList ID="ddlLayersList" 
       AutoPostBack="true" runat="server" 
       OnSelectedIndexChanged="ddlLayersList_SelectedIndexChanged">

答案 1 :(得分:1)

除了设置Z = np.random.random(10) Z.sort() 以启用自动回发外,还设置AutoPostBack="true"事件处理程序而不是OnSelectedIndexChanged(请注意,它们都不是同一事件):

OnTextChanged