Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Разработка под 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. так же это событие не происходит, если выбранный элемент не изменился. если с этим все в порядке, значит по-любому должен обработчик вызываться, вопрос только в том - для кого и где ![]() |
Автор: ShuR79 11.12.2008, 09:55 |
value не равен -1 и выбранный элемент меняется, а обработчик не вызывается - при отладке даже не заходит в него. Не может вызов обработчика "перекрыватся" другим событием? |
Автор: lando1 30.12.2008, 11:12 |
1) у DropDownList стоит свойство AutoPostBack = true? 2) в каком месте вы добавляете обработчик событий? Если в PreRender - то понятно что он не сработает, т.к. обработка событий происходит до него. Нужно добавлять в Page_Load. |