2015-04-15 2 views
0

Это мой sciprt, он отображает окно сообщения с «Ok» и «Отмена» КнопкаКак вызвать функцию яваскрипта непосредственно из кода VB

<script type="text/javascript"> function Confirm() { 
    var confirm_value = document.createElement('INPUT'); 
    confirm_value.type = 'hidden'; 
    confirm_value.name = 'confirm_value'; 
    if (confirm('Continue?')) { 
    confirm_value.value = 'Yes'; 
    } else { 
     confirm_value.value = 'No';} 
    document.forms[0].appendChild(confirm_value);} </script> 

На моей программе я бегу запрос, если результатов нет, я покажу это окно «Диалог»

Я хочу вызвать функцию сразу после получения результатов запроса, но мой текущий код, похоже, запускает его после всего, а не сразу.

If reader.read = false then 
    If Not Page.ClientScript.IsStartupScriptRegistered(Me.GetType(), "alertscript") Then 
     Page.ClientScript.RegisterStartupScript(Me.GetType(), "alertscript", "Confirm();", True) 
    End if 

    Dim confirmValue As String = Request.Form("confirm_value") 
    If confirmValue = "Yes" Then 
     'Do stuff here 
    End if 
End if 

ответ

2

Для меня этот запрос обычно представляет собой непонимание того, что происходит. В то время, когда ваш код VB.Net запущен, javascript не существует. Все обработчики событий сервера приводят к полной отправке . Это означает, что вся страница воссоздана с нуля. Код VB.Net здесь является частью процесса, который генерирует совершенно новый HTML-документ. Это будет включать весь жизненный цикл страницы, включая код вашей страницы Page_Load. Когда событие было поднято, любой html, уже отображенный в браузере, был уничтожен, чтобы освободить место для ответа на весь новый HTTP-запрос.

Если вы хотите, чтобы это реагировало по-другому, вам нужно собрать весь ответ HTTP с учетом этого. Это означает либо изменение способа создания события с самого начала (вызов WebMethod или другого запроса ajax), либо установка ответа на вызов метода подтверждения в событии загрузки страницы javascript.

+0

Это, по-видимому, обычное фундаментальное недоразумение в веб-формах и виртуальных сетях VB .Net. –

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