2014-09-08 2 views
0

asp.net 웹 응용 프로그램에서 서버의 클래스에 클라이언트 측 javascript 함수를 호출하여 프롬프트 상자를 throw 한 다음 기다리는 함수를 작성할 수 있습니까? 사용자의 응답을 위해?서버 측 함수 호출 클라이언트 측 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 

클라이언트 자바 스크립트 기능이에 어떤 도움을 주시면 더 좋구요

<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

당신은 AJAX를 사용해야 할 수도 있습니다. 서버 코드에서 팝업을 호출하고 사용자가 제출할 때 팝업을 통해 서버 측의 다른 메소드를 호출하도록 처리하십시오. AJAX는 서버 측에 클라이언트 호출을 할 수 있습니다. 초기 메소드는 팝업을 불러오고 AJAX는 서버에서 다른 메소드를 호출하여 제출을 처리합니다.

+0

고마워요! 코드에 몇 가지 변경을가했지만 코드의 기능을 사용할 수없는 것 같습니다. ans를 반환하는 대신 CallServer를 대답으로 전달합니다. CallServer (ans); –

+0

함수 CallServer (SANS) {$ 아약스 ({ 형 "POST" URL "frmCrewList.aspx.vb/TimeOutDepth" 데이터 : "{}" contentType이 "애플리케이션/JSON, 캐릭터 = UTF-8 ", dataType와"JSON ", 성공 : 기능 (MSG) { (msg.d == 경우"성공 ") 복귀는 true, 그렇지 는 false를 돌려 , } }); } 호출 된 함수가 코드 뒤에 있으며 으로 선언되었습니다. _ Public Sub TimeOutDepth() –

+0

webmethod가 정적으로 선언되었는지 확인하십시오. – Paritosh

관련 문제