2013-04-23 3 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

Знал это было что-то простое. Спасибо. –

2

Добавить это выпадающий список ASPX это вызовет запрос будет отправить на сервер и ваше мероприятие будет уволен ,

AutoPostBack="true" 
+0

Знал, что это было что-то простое. Спасибо. –

+0

Нет проблем, пожалуйста, отметьте полезные ответы в качестве принятого, чтобы другие могли также выиграть. – DotNetUser

2

Вам просто нужно установить AutoPostBack = True

От ListControl.AutoPostBack собственности;

Получает или задает значение, указывающее, является ли обратная передача на сервер автоматически, когда пользователь меняет выбор списка.

1

AutoPostBack="true" и

событие записи загрузки страницы

if (!IsPostBack) 
{ 
    DDL_Designation_Bind(); 
} 

// Поскольку autopostback свойства событий пожара нагрузка наша dropdownlist и повторное связывание всегда выбирается индекс 0, так не Rebinding dropDownlist