Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Разработка под ASP.NET > Не срабатывает SelectedIndexChanged для DropDownL


Автор: ShuR79 10.12.2008, 13:37
Есть динамический GridView, в котором создаются Template-ы с DropDownList и Button, на них вешаются события: 

Button b = (Button)e.Row.FindControl("bSel"); 
b.Click += new EventHandler(bSel_Click); 

DropDownList ddl = (DropDownList)e.Row.FindControl("ddlSel"); 
ddl.SelectedIndexChanged += new EventHandler(ddl_SelectedIndexChanged); 

Событие bSel_Click при нажатии на кнопку работает нормально, а событие ddl_SelectedIndexChanged при выборе в DropDownList не происходит, причём страница обновляется. Не подскажите в чём может быть проблема?

Автор: elbjarn 11.12.2008, 09:46
по-моему, selectindexchanged не происходит, если выбрано значение -1. как-то сталкивался с этой проблемой - контрол считает, что -1 это значит "элемент не выбран". так что проверьте, не имеют ли у вас элементы дропдауна value == -1.
так же это событие не происходит, если выбранный элемент не изменился.
если с этим все в порядке, значит по-любому должен обработчик вызываться, вопрос только в том - для кого и гдеsmile. посмотрите внимательней, может обработчик и вызывается, только не совершает действий, которых вы от него ожидаете.

Автор: ShuR79 11.12.2008, 09:55
value не равен -1 и выбранный элемент меняется, а обработчик не вызывается - при отладке даже не заходит в него. 
Не может вызов обработчика "перекрыватся" другим событием?


Автор: lando1 30.12.2008, 11:12
1) у DropDownList стоит свойство AutoPostBack = true?

2) в каком месте вы добавляете обработчик событий? Если в PreRender - то понятно что он не сработает, т.к. обработка событий происходит до него. Нужно добавлять в Page_Load.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)