![]() |
|
Модераторы: gambit |
![]()
|
|
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Поймал я сегодня весьма странный глюк. Обнаружил, что при PostBack'е ObjectDataSource, связанный с GridView, как будто игнорируется (например, события Selecting, Creating не срабатывают). Хотя при первичной загрузке страницы все нормально.
Допускаю, что глюк где-то глубже, а то, что я наблюдаю, - лишь следствие. Очень надеюсь на вашу помощь, ибо сам я в полном ступоре. |
|||
|
||||
| Mymik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1474 Регистрация: 12.5.2006 Где: Lamer-центер Репутация: 50 Всего: 78 |
-------------------- |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Хм... ObjectDataSource привязывается к GridView декларативно через свойство DataSourceId. Вручную в этом случае вызывать DataBind нет необходимости. Следовательно, привязка должна происходить автоматически по-моему после PreRender. Это сообщение отредактировал(а) Idsa - 18.12.2007, 23:14 |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
читаем мануал.
интересно написано здесь -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
tol05, насколько я понимаю, кэширование начинает работать только в том случае, если установить свойство ObjectDataSource.EnableCaching = true. Однако я кэширование не включал.
Может, я что-то неправильно понял? |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
Проблема решена... но ее решение вызвало еще больше вопросов.
Т. к. при postback'ах не вызывались события ObjectDataSource.Selecting, ObjectDataSource.ObjectCreating и т. д., стало ясно, что привязка не происходит в принципе. Поэтому в PreRender я решил принудительно вызывать myGridView.DataBind(). Сработало. Но мне не дает покоя вопрос, почему же binding не работал автоматически? |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 34 Всего: 170 |
это сложный вопрос. Я когда-то гуглил по нему... жалоб много и объяснения вроде понятны - "кеширование, а что, разве плохо? Ведь хорошо же, правда?"
а вот как обойти... Много чего захардкодано в самом ObjectDataSource... Проще действительно при постбеке самому вызывать DaatBind() или ObjectDataSource.Select(), чем переписывать код взаимодействия ObjectDataSource со страницей и кешом... Такое мое мнение. Это сообщение отредактировал(а) tol05 - 21.12.2007, 17:37 -------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 15 Всего: 62 |
||||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Разработка под ASP.NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |