2012-03-09 9 views
4

현재 ASP.NET에서 여러 양식 제출을 방지하는 방법을 찾고 있습니다 (즉, 사용자가 제출 단추를 여러 번 클릭하여 여러 번 OnClick 이벤트가 발생 함) .ASP.NET에서 다중 양식 제출 방지

현재, 나는 이런 식으로 일을 해요 :

protected override void OnLoad(EventArgs e) 
    { 
     base.OnLoad(e); 
     Page.ClientScript.RegisterOnSubmitStatement(GetType(), "ServerForm", 
     "if (this.submitted) return false; this.submitted = true; return true;"); 
    } 

이 동기 포스트 백에 대한 매력처럼 작동 - 'submitted' 값이 여러 제출되는 양식을 각 다시 게시 후 다시 방지한다 시간이 같은 실행 -하지만,이 방법은 AsyncPostbacks 즉, UpdatePanel과 함께 작동하지 않습니다, 그래서 지금은 dis -과 dis 버튼을 클릭 후 JS를 통해 모든 버튼을 활성화하지 않고도 이런 일이 일어나게하는 아이디어를 찾고 있어요 .

감사합니다,

데니스

+3

같은 간단한 자바 스크립트를 사용하여 버튼을 비활성화 & 위의 예제 코드를 수정할 수 있습니까? –

+0

정말 내 페이지에서 원하지 않는 JS가 너무 많아서 추가적으로 몇 가지 브라우저 (안녕 IE)에서 작동해야하는데, 실제로 구현하기가 어려울 수 있습니다. 간단한 해결책을 찾기를 바랬습니다. 이것은 단지 페이지에서 파생되는 클래스에서 구현할 수 있습니다. –

답변

1

을 당신이 당신의 데이터베이스에 확인하지 왜? 사용자가 이미 등록한 경우 경고 상자를 보냅니다. 그리고 당신이 당신을 도울 것입니다 PRG pattern

Handling Form submission with PRG

0
  1. 당신은 비동기 요청을 확인하기 위해 클래스 Sys.WebForms.PageRequestManager에 존재하는 시작 & 종료 방법을 확인할 수 있습니다.
  2. Sys.WebForms.PageRequestManager 당신은 왜 버튼을 비활성화

    document.getElementById("YouButton.ClientID").disabled = true;