Таймер заставляет выпадающие списки навсегда исчезать после модального всплывающего окна - PullRequest
0 голосов
/ 08 апреля 2010

На довольно сложной странице мы получаем необычное поведение с выпадающими списками в IE6. Для компоновки базовой структуры на странице есть две панели обновления, каждая из которых имеет GridView, представляющую макет основных данных. В дополнение к сетке, каждая панель содержит несколько DropDownLists для фильтрации данных в соответствующих GridView.

Теперь происходит то, что кнопка на нижней сетке вызовет всплывающую модальную форму, в которой можно изменить некоторые детали элемента строки. Согласно ASP.NET AJAX JavaScript, DropDowns отключается во время postback и повторно включается после его закрытия.

К нижней сетке также прикреплен таймер, который периодически обновляет ее, чтобы сохранить представление данных свежим. Когда этот таймер срабатывает после закрытия модального всплывающего окна, раскрывающиеся списки таинственно исчезают, за исключением тех, которые в этом обновлении panel, которые, по-видимому, снова отображаются.

Как ни странно, если таймер срабатывает, когда всплывает всплывающее окно, выпадающие списки включаются рано и показываются через модальный режим (о, IE6 ...), но не исчезают позже.

1 Ответ

1 голос
/ 23 октября 2010

Прошло некоторое время с тех пор, как я опубликовал это, но проблема иногда всплывает, и я думаю, что, наконец, нашел на нее ответ.

Модальный всплывающий javascript AJAX Toolkit отключает все DropDownLists на странице, поскольку они показывают самый высокий Z-уровень в IE6. Но если что-то вызывает обратную передачу во время показа модального режима (например, плохо управляемый таймер), тогда невидимое состояние записывается в состояние просмотра для DDL.

Самый простой способ обойти это - просто поместить нарушающие DDL в панель обновлений, чтобы они правильно обновлялись при обновлениях и не застревали. Более сложный способ состоит в том, чтобы гарантировать, что ничто не вызывает посторонние обратные передачи, в то время как модальный показ. Вероятно, лучшим способом было бы отказаться от Webforms и всего багажа с ним, но этого почти не произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...