2010-03-26 2 views
0

Хорошо, у меня есть лайтбокс с небольшой формой (2 поля) в нем, внутри UpdatePanel, и я хочу закрыть этот лайтбокс (должно быть сделано через javascript) когда нажимается кнопка «Сохранить».Запустить функцию javascript после завершения проверки на стороне сервера

Однако на странице необходимо иметь пользовательский интерфейс на стороне сервера, и я хочу только закрыть лайтбокс, если он вернётся как действительный.

Кто-нибудь знает способ запуска кода javascript (или jQuery) с сервера проверки на стороне сервера?

ответ

2

Вы можете добавить небольшой фрагмент кода, используя ScriptManager для выполнения после того, как ответ вернется к UpdatePanel.

if (Page.IsValid){ 

    ScriptManager.RegisterStartupScript(
      customValidator1, 
      typeof(MyPageClass), 
      "closeBox", 
      "myLightBoxVariableOnThePage.close()", 
      true); 
} 
+0

Хм, интересная идея. –

0

При запуске, что на стороне сервера проверки подлинности, он будет посылать совершенно новую страницу в браузере. Все, что было показано в браузере раньше, было уничтожено, включая любое состояние, сохраненное в вашем javascript. Если новая страница имеет сильное сходство со старой страницей, вы должны считать это счастливым совпадением.

Таким образом, дело здесь, а не выполнение функции javascript, пусть ваш CustomValidator внесет правильные изменения на странице с успехом, чтобы он был правильно отображен браузером.

+0

К сожалению, лайтбокс просто не будет работать так, это лайтбокс jQuery (построенный поверх FaceBox), который нельзя оставить открытым после обратной передачи, не удаляя его из контекста updatepanel. Это сложно, поэтому мне нужно запустить код javascript, когда он действителен, а не просто сделать лайтбоксом невидимым или что-то еще. –

Смежные вопросы