Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从vb代码中立即调用javascript函数_Javascript_Asp.net_Vb.net_Visual Studio 2008 - Fatal编程技术网

如何从vb代码中立即调用javascript函数

如何从vb代码中立即调用javascript函数,javascript,asp.net,vb.net,visual-studio-2008,Javascript,Asp.net,Vb.net,Visual Studio 2008,这是我的sciprt,它显示一个带有“确定”和“取消”按钮的消息框 <script type="text/javascript"> function Confirm() { var confirm_value = document.createElement('INPUT'); confirm_value.type = 'hidden'; confirm_value.name = 'confirm_value'; if (confirm('Co

这是我的sciprt,它显示一个带有“确定”和“取消”按钮的消息框

<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>

对我来说,这个请求通常代表着对正在发生的事情的误解。在运行VB.Net代码时,javascript不存在。所有服务器事件处理程序都会导致完全回发。这意味着整个页面是从头开始重新创建的。这里的VB.Net代码是生成全新HTML文档的过程的一部分。这将涉及整个页面生命周期,包括服务器的页面加载代码。引发事件时,浏览器中已呈现的任何html都会被销毁,以便为您对全新HTTP请求的响应让路


如果您希望它以不同的方式响应,那么您需要在构建整个HTTP响应时牢记这一点。这意味着要么从一开始就改变事件的引发方式(调用WebMethod或其他ajax请求),要么将响应设置为在javascript页面加载事件中调用确认方法。

这似乎是Web表单和VB.Net世界中常见的基本误解。
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