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

4 回答 4

25

设置AutoPostBack=True为您的 DDL 的属性,它将自动回发选定的索引更改事件

于 2013-04-23T15:20:40.403 回答
2

将此添加到下拉列表 aspx 中,它将导致将请求发送到服务器,并且您的事件将被触发。

AutoPostBack="true"
于 2013-04-23T15:21:17.670 回答
2

你只需要设置AutoPostBack = True

来自ListControl.AutoPostBack财产;

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

于 2013-04-23T15:22:26.473 回答
1

AutoPostBack="true"

编写页面加载事件

if (!IsPostBack)
{
   DDL_Designation_Bind();   
}

// 因为autopostback属性触发加载事件然后我们dropdownlist重新绑定并且总是选择索引 0 所以不重新绑定dropDownlist

于 2016-07-04T05:45:48.503 回答