2013-01-31 4 views
0

복잡한 수식 서버 측 계산 후 클라이언트 측 확인을 표시해야합니다.클라이언트 측 확인 후 서버 측 코드 만 실행

//Server side 
     On ButtonClick(){ 
      FetchRate(field1,field2,.... fieldn); 
      // Show Client side confirmation 
      // Execute server side code if confirmed client side 
    } 

같은 뭔가 내가 클라이언트 측 기능을 작성했을하지만 내 서버 측 코드는 관계없이 항상 내가 클라이언트 측

// Server side  
ScriptManager.RegisterStartupScript(this,this.GetType(), Guid.NewGuid().ToString(), "ConfirmAction('"+ myRate +"');", true); 
//Client side 
    function ConfirmAction(myRate) { 
      if (confirm('Are you sure?. Rate is exceeding '+ myRate +', proceed ?')) { 
       document.getElementById('hfSaveUpdate').value = 1; 
       return true; 
      } 
      else 
       return false; 
     } 

답변

2

Ajax Model Popup &은 ok 버튼 & 취소 버튼을 사용할 수 있습니다.

<ajaxToolkit:ModalPopupExtender ID="ModelPopupID" runat="server" 
    TargetControlID="LinkButton1" 
    PopupControlID="Panel1" 
    BackgroundCssClass="modalBackground" 
    DropShadow="true" 
    OkControlID="OkButton" 
    OnOkScript="onOk()" 
    CancelControlID="CancelButton" 
    PopupDragHandleControlID="Panel3" /> 

는 서버 코드에서 모달 팝업 창을 시작 :

서버 측 코드 :

ClientScript.RegisterStartupScript(this.GetType(), "key", "launchModal();", true); 

클라이언트 측 코드 : 모델 팝업의 확인을 클릭에

<script type="text/javascript"> 
var launch = false; 
function launchModal() 
{ 
launch = true; 
} 
function pageLoad() 
{ 
if (launch) 
{ 
$find("ModelPopupID").show(); 
} 
} 
</script> 

, 당신에게 구조 코드 후 서버 측을 실행합니다. 취소 버튼을 클릭하면 모델 팝업 창을 숨 깁니다.

자세한 내용은이 사항을 확인하십시오

ModalPopup Tutorial

2

서버 쪽 코드 사이에 클라이언트 쪽 작업을 넣을 수 없습니다.

코드는 클라이언트 쪽 확인을 준비하지만 응답이 완료 될 때까지 브라우저에 보내지 않습니다. 그런 다음 서버는 즉시 데이터 처리를 계속합니다. 완료되면 응답이 브라우저로 전송되고 사용자에게 확인 대화 상자가 표시됩니다. 너무 늦었습니다. 데이터가 이미 처리되었습니다. 대화 상자의 결과가 서버로 전송되지 않습니다.

프로세스를 두 개로 나눠야합니다. 먼저 해당 속도에 대한 확인을 받고 (아마 ajax를 사용하여) 처리/저장 될 양식을 제출하십시오.

관련 문제