Re[2]: проблемы с ICallbackEventHandler
От: Gollum Россия  
Дата: 13.04.06 12:54
Оценка: +2
Здравствуйте, Nikolay_Ch, Вы писали:

ЕВ>>просто стяните браузером.

N_C>Пробовал — браузер не дает...

И не даст, потому что в урл входит таймстэмп — для защиты от DoS атак на веб-ресурсы.
Смотрите в ресурсах system.web.dll
Я не злопамятный... Просто я злой, и память у меня хорошая!
Eugene Agafonov on the .NET

проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 25.01.06 12:05
Оценка:
Непонятно по какой причине не вызывается клиентская процедура, которая передается третьим параметром
при вызове ClientScript.GetCallbackEventReference
Делаю так:

ClientScript.RegisterClientScriptBlock(this.GetType(), "a", "function aaa(arg, context) {alert(arg);}", true);


HtmlButton oacl = new HtmlButton();
Controls.Add(oacl);

oacl.ID = "qwerty";
oacl.Attributes.Add("onclick", ClientScript.GetCallbackEventReference(this, "'qqq'", "aaa", null, false));


На сервер запрос приходит и обрабатывается нормально. А вот на клиенте обратная функция aaa не вызывается
Может есть какие тонкости?

И еще, где можно посмотреть исходник js-функции WebForm_CallbackComplete — собственно она и должна вызывать мою функцию...
проблемы с ICallbackEventHandler
От: Аноним  
Дата: 25.01.06 12:41
Оценка:
И еще, где можно посмотреть исходник js-функции WebForm_CallbackComplete — собственно она и должна вызывать мою функцию...

В HTML коде сформированной страницы будет примерно такая строка
<script src="/PROJECT_1/WebResource.axd?d=MIvyfxmx8raXhtLZLD2DrRbvfQvG1_rtkJY0S-clwrE1&amp;t=632707849651578606" type="text/javascript"></script>
просто стяните браузером.

Все должно быть просто, очень просто, настолько просто — насколько это возможно!
Оренбургское сообщество .NET разработчиков
Мой блог


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 25.01.06 14:39
Оценка:
N_C>На сервер запрос приходит и обрабатывается нормально. А вот на клиенте обратная функция aaa не вызывается
N_C>Может есть какие тонкости?
Нашел. Тонкость оказалась в том, что я применял одну из реализаций страницы ожидания с DIV,
который в OnInit флашился на клиента, а в конце загрузки скрывается. Оказалось, что при обработке
callback'а он опять-же флашился на клиента и парсер на клиентской стороне неправильно определял
признак безошибочного окончания вызова. Вышел из положения проверкой в OnInit значения Request.Form["__CALLBACKID"] на не null

N_C>И еще, где можно посмотреть исходник js-функции WebForm_CallbackComplete — собственно она и должна вызывать мою функцию...

Исходный код, если кому интересно, нашел здесь:
http://weblogs.asp.net/mschwarz/archive/2005/03/03/384350.aspx
Комментарии, правда, на немецком — но это не столь важно...
Re: проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 27.01.06 06:52
Оценка:
ЕВ>просто стяните браузером.
Пробовал — браузер не дает...
Re[2]: проблемы с ICallbackEventHandler
От: Nadusha  
Дата: 13.04.06 12:51
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>>На сервер запрос приходит и обрабатывается нормально. А вот на клиенте обратная функция aaa не вызывается

N_C>>Может есть какие тонкости?
N_C>Нашел. Тонкость оказалась в том, что я применял одну из реализаций страницы ожидания с DIV,
N_C>который в OnInit флашился на клиента, а в конце загрузки скрывается. Оказалось, что при обработке
N_C>callback'а он опять-же флашился на клиента и парсер на клиентской стороне неправильно определял
N_C>признак безошибочного окончания вызова. Вышел из положения проверкой в OnInit значения Request.Form["__CALLBACKID"] на не null

А можно поподробнее рассказать, а лучше на примере показать. Столкнулась точно с такой же проблемой. А вот про проверку не понятно, что проверять, как проверять?
Re[2]: проблемы с ICallbackEventHandler
От: mogadanez Чехия  
Дата: 13.04.06 12:56
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>Исходный код, если кому интересно, нашел здесь:

N_C>http://weblogs.asp.net/mschwarz/archive/2005/03/03/384350.aspx
N_C>Комментарии, правда, на немецком — но это не столь важно...

исходный код можно было получить подключившись дебагером к IE ( Javascript )
в Running Documents оно есть.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Re[3]: проблемы с ICallbackEventHandler
От: Gollum Россия  
Дата: 13.04.06 12:57
Оценка:
Здравствуйте, Nadusha, Вы писали:

N>А можно поподробнее рассказать, а лучше на примере показать. Столкнулась точно с такой же проблемой. А вот про проверку не понятно, что проверять, как проверять?


Пример клиентских колбэков есть здесь:
http://blogs.winfs.ru/gollum/articles/3.aspx

т.к. презентация написана по бете второго асп.нета, код нужно поправить с учетом
http://blogs.winfs.ru/gollum/archive/2005/08/08/12.aspx
Моя смерть ездит в черной машине с голубым огоньком
Eugene Agafonov on the .NET

Re[3]: проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 13.04.06 13:07
Оценка:
N>А можно поподробнее рассказать, а лучше на примере показать. Столкнулась точно с такой же проблемой. А вот про проверку не понятно, что проверять, как проверять?
Если с такой-же — то вкраце так:
В OnInit страницы у меня создается DIV и сразу-же отсылается на клиента (Response.Flush())
Там-же регистрируется клиентский стартапный скрипт, который скрывает этот DIV.
У меня класс страницы соответствующий для этого — когда надо показать "Пожалуйста, подождите..." —
просто наследуюсь не от Page, а от WaitPleasePage.

При CallBack OnInit отрабатывает точно так-же! И поэтому на клиента возвращается кроме самого ответа
еще и мой DIV, который сформирован вначале. Поэтому, для нормальной работы я в этом классе прописал
условие, по которому не показываю DIV (__CALLBACKID — идентификатор контрола, вызвавшего CallBack —
его заполняет клиентский скрипт от MS):
// check for "callback" to disable "wait please" functionality
if (Request.Form["__CALLBACKID"] != null)
    bShowWaitPlease = false;
Re[4]: проблемы с ICallbackEventHandler
От: Nadusha  
Дата: 13.04.06 13:20
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N_C>При CallBack OnInit отрабатывает точно так-же! И поэтому на клиента возвращается кроме самого ответа

N_C>еще и мой DIV, который сформирован вначале. Поэтому, для нормальной работы я в этом классе прописал
N_C>условие, по которому не показываю DIV (__CALLBACKID — идентификатор контрола, вызвавшего CallBack -
N_C>его заполняет клиентский скрипт от MS):
N_C>
N_C>// check for "callback" to disable "wait please" functionality
N_C>if (Request.Form["__CALLBACKID"] != null)
N_C>    bShowWaitPlease = false;
N_C>


В OnInit уже все пусто, но все равно не идет
Re[4]: проблемы с ICallbackEventHandler
От: Nadusha  
Дата: 13.04.06 13:23
Оценка:
Здравствуйте, Gollum, Вы писали:

G>Здравствуйте, Nadusha, Вы писали:


N>>А можно поподробнее рассказать, а лучше на примере показать. Столкнулась точно с такой же проблемой. А вот про проверку не понятно, что проверять, как проверять?


Сделано вроде все как в примерах, но все равно не работает
Re[5]: проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 13.04.06 13:36
Оценка:
N>В OnInit уже все пусто, но все равно не идет
А что говорит?
Re[6]: проблемы с ICallbackEventHandler
От: Аноним  
Дата: 13.04.06 13:52
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

N>>В OnInit уже все пусто, но все равно не идет

N_C>А что говорит?

в том то и дло, что ничего не говорит, серверная часть выполняется, а завершающая клиентская процедура не срабатывает (если правильно выражаюсь)
Re[7]: проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 13.04.06 13:55
Оценка:
А>в том то и дло, что ничего не говорит, серверная часть выполняется, а завершающая клиентская процедура не срабатывает (если правильно выражаюсь)
Включай клиентскую отладку (трассировку, SPY) и лови то, что тебе сервер шлет при CallBack...
Наверняка какие-то лишние данные в Output Stream кто-то пишет...
Re[8]: проблемы с ICallbackEventHandler
От: Nadusha  
Дата: 13.04.06 13:59
Оценка:
Здравствуйте, Nikolay_Ch, Вы писали:

А>>в том то и дло, что ничего не говорит, серверная часть выполняется, а завершающая клиентская процедура не срабатывает (если правильно выражаюсь)

N_C>Включай клиентскую отладку (трассировку, SPY) и лови то, что тебе сервер шлет при CallBack...
N_C>Наверняка какие-то лишние данные в Output Stream кто-то пишет...

в GetCallbackResult() попадает то что нужно
Re[9]: проблемы с ICallbackEventHandler
От: Nikolay_Ch Россия  
Дата: 14.04.06 06:08
Оценка:
N>в GetCallbackResult() попадает то что нужно
Дело не в том, что туда попадает. А в том, что кто-то уже
успел прписать что-то в поток Response. Это можно отследить
уже по результату. Например, вывести на экран все то, что
реально получил клиент, о чем я уже говорил.
Если стоит буферизация, еще можно попробовать очистить буфер,
перед отправкой результатов: Response.Clear()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.