2013-04-23 70 views
7

我有以下DropDownList控件:ASP.Net的DropDownList OnSelectedIndexChange不點火

<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; 
} 

的方法,將不會觸發出於某種原因。我選擇了一個不同的值,沒有任何反應。我想要做的是重新加載傳遞狀態值的頁面,以便我可以通過它過濾結果。

我在做什麼錯?

回答

22

設置AutoPostBack=True爲您的DDL的屬性,它會自動回來後所選擇的指數變化情況

+0

知道這是簡單一些。謝謝。 – 2013-04-23 15:26:52

2

添加這個到下拉列表ASPX就會造成請求被髮送到服務器,並在事件將被解僱。

AutoPostBack="true" 
+0

知道這很簡單。謝謝。 – 2013-04-23 15:27:18

+0

沒有問題,請將有用答案標記爲已接受,以便其他人也能從中受益。 – DotNetUser 2013-04-23 15:32:46

2

你只需要設置AutoPostBack = True

ListControl.AutoPostBack財產;

獲取或設置指示當用戶更改列表選擇一個回發到服務器 是否自動產生的值。

1

AutoPostBack="true"

寫頁面加載事件

if (!IsPostBack) 
{ 
    DDL_Designation_Bind(); 
} 

//因爲autopostback性質火災負荷大事件,然後我們重新綁定dropdownlist,總是選擇指數0,因此不重新綁定dropDownlist