Вызовите Javascript из функции на основе условия - PullRequest
2 голосов
/ 22 июля 2009

У меня есть модальная система jQuery, которую я построил, и я хотел бы, чтобы модальное окно всплыло, если введенное пользователем имя пользователя или пароль неверны Мне нужно сделать эти проверки из кода C # в ASP, а затем, если есть неверное имя пользователя или пароль, вызвать мою функцию JavaScript: showModal ("errorDiv").

Возможно ли это?

Я не хочу привязывать JavaScript к нажатию кнопки, а скорее к условию блока кода при нажатии кнопки.

Так в основном

btnSubmit_OnClick(sender, e)
{
   if (Username.Exists())
      //// Continue on
   else
        call showModal("errorDiv");

}

Любая помощь?

Ответы [ 4 ]

5 голосов
/ 22 июля 2009

Посмотрите на метод ScriptManager.RegisterStartupScript , он позволяет вам выполнять JavaScript на стороне клиента, когда ваши асинхронные запросы заканчиваются на элементе управления, этот метод добавит ваш JavaScript на стороне сервера ответ:

ScriptManager.RegisterStartupScript(UpdatePanel1, GetType(), "showModalScript",
                                    "showModal('errorDiv');", true);

Если вы не используете MS Ajax UpdatePanels для частичного рендеринга страницы, и ваша обратная передача нормальная, посмотрите на ClientScriptManager.RegisterClientScriptBlock :

ClientScript.RegisterStartupScript(GetType(), "showModalScript",
                                   "showModal('errorDiv');", true);
1 голос
/ 22 июля 2009

Нет способа вызвать функцию JavaScript «напрямую» с веб-сервера. Сервер может генерировать только HTML-ответ, отображаемый браузером.

Ответ HTML, который генерирует веб-сервер, может включать сгенерированный JavaScript. Поэтому, я думаю, вы, вероятно, захотите написать JavaScript из btnSubmit_OnClick, который будет вызывать диалоговое окно при загрузке страницы.

Я не знаю достаточно о механике ASP, чтобы помочь вам там, но, надеюсь, это немного прояснит ситуацию.

0 голосов
/ 22 июля 2009

Я не совсем уверен, чего вы здесь добиваетесь. Мне кажется, что вы пытаетесь вызвать функцию ASP из JavaScript. Проблема в том, что ваш ASP работает на сервере, а javascrpt работает на клиенте.

Вам необходимо создать страницу ASP, которая будет возвращать результаты вашей аутентификации. Затем вы используете что-то похожее на это, чтобы оценить это:

.get('/urlto/authpage.asp', function(data) { 
    if (data='Authorized') { 
        do something;
    }
    else {
        showModal('errorDiv');
    }

в этом случае я предполагаю, что ваша страница ASP возвращает просто «Авторизовано», если оно авторизовано.

.get () вызывает удаленный сервер, используя URL в кавычках. Второй аргумент - это функция, которая вызывается при возвращении результатов. Первым аргументом функции является текст этого веб-запроса.

Подробнее о .get (): http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

Надеюсь, я правильно прочитал ваш вопрос.

0 голосов
/ 22 июля 2009

Один из способов сделать это - отправить переменную javascript на вашу страницу из C #. Затем установите подпрограмму javascript для запуска при загрузке страницы с помощью jQuery, который проверяет эту переменную и вызывает showModal ("errorDiv").

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