ASP.Net的DropDownList在选中项改变时不触发OnSelectedIndexChange事件

7

我有以下的DropDownList控件:

<asp:label runat="server" text="Filter by state: "></asp:label>
<asp:dropdownlist runat="server" id="filterbystate" 
    OnSelectedIndexChanged="FilterByState">
    <asp:ListItem value="all" selected="True">All</asp:ListItem>
    <asp:ListItem value="ca" selected="False">California</asp:ListItem>
    <asp:ListItem value="co" selected="False">Colorado</asp:ListItem>
    <asp:ListItem value="id" selected="False">Idaho</asp:ListItem>
    <asp:ListItem value="ut" selected="False">Utah</asp:ListItem>
</asp:dropdownlist>

这是方法:

在这里:

protected void FilterByState(object sender, EventArgs e)
{
    var value = e;
}

由于某些原因,该方法不会触发。我选择了不同的值,但什么也没有发生。我的目标是重新加载页面,并传递状态值,以便可以按其过滤结果。

我做错了什么?

4个回答

25
AutoPostBack=True设置为DDL的属性,它将自动提交所选索引更改事件。

知道这是一个简单的东西。谢谢。 - James Wilson

2
将此添加到下拉列表aspx中,它将导致向服务器发送请求并触发您的事件。
AutoPostBack="true"

知道这只是一些简单的东西。谢谢。 - James Wilson
没有问题,请将有用的答案标记为已接受,以便其他人也能受益。 - DotNetUser

2

您只需设置 AutoPostBack = True

来自ListControl.AutoPostBack属性;

获取或设置一个值,该值指示当用户更改列表选择时是否自动发生向服务器的PostBack。


1
自动回传 "true",并编写页面加载事件。
if (!IsPostBack)
{
   DDL_Designation_Bind();   
}

//由于autopostback属性会触发load事件,然后我们的dropdownlist重新绑定并且总是选择索引0,所以不要重新绑定dropDownlist


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接