服务器端函数调用客户端Javascript函数以获取结果

Server Side Function Calling Client Side Javascript Function For Results

本文关键字:获取 结果 函数 Javascript 函数调用 客户端 服务器端      更新时间:2023-09-26

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

非常感谢在这方面的任何帮助。感谢

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