服务器端函数调用客户端Javascript函数的结果

时间:2014-09-08 18:48:07

标签: javascript asp.net vb.net

在asp.net Web应用程序中,是否可以在服务器上的类中编写一个函数来调用客户端javascript函数,该函数会抛出提示框然后等待用户的响应?

我有一个成功调用客户端javascript的函数并显示提示框,但函数不等待用户的响应,后面的代码总是继续。 有没有办法让它等待回应?

功能背后的代码:

Protected Friend Shared Sub ShowDepthQuestion(sLaborId As String)
            Try
                Dim sQuestion As String = mDatabase.GetSingleValueString(" SELECT question FROM laboroverride_hdr WHERE hdr_id = " + mDatabase.AddQuotes(sLaborId), Nothing)                   
                Dim cs As ClientScriptManager = mFrom.ClientScript

                If Not mFrom.ClientScript.IsClientScriptBlockRegistered("devTeam") Then
                    cs.RegisterStartupScript(mFrom.GetType(), "devTeam", "<script language='javascript'>AskDepthQuestion(" + mDatabase.AddQuotes(sQuestion) + "); </script>")
                End If


                ' TODO need code to get the response from the user here

            Catch ex As Exception
                WebFunctions.UnhandledPageError(mFrom, ex, "Depth.Retrieve.Functions.ShowDepthQuestion")
                'Return ""
            End Try
        End Sub

客户端Javascript功能:

    <script type="text/javascript">
    function AskDepthQuestion(question, context) {
        var ans = window.prompt(question, "0");
        while (!IsNumeric(ans)) {
            if (IsNumeric(ans)) {
                return ans;
            } else if (ans == null) {
                return ans;
            } else {
                ans = window.prompt("Answer must be numeric!" + "\n" + question, context);
            }
        }
    }

    function IsNumeric(n) {
        return !isNaN(parseFloat(n)) && isFinite(n);
    }

</script>

非常感谢任何帮助。感谢

1 个答案:

答案 0 :(得分:1)

您可能必须使用AJAX。让您的服务器代码调用弹出窗口并让弹出窗口调用服务器端的另一个方法来处理用户提交的时间。 AJAX可以对服务器端进行客户端调用。所以你的初始方法只会调出弹出窗口,而AJAX会调用服务器上的另一个方法来处理提交。