문제

ASP.NET 버튼에서 상속하고 'onserverclick'을 사용하는 몇 가지 컨트롤이 있습니다.

사용자가 두 번 클릭하면 버튼이 두 개의 서버 측 이벤트를 실행합니다.어떻게 하면 이를 방지할 수 있나요?

자바스크립트를 통해 클릭 후('onclick' 속성에서) "this.disabled='true'"를 설정하려고 시도했지만 첫 번째 포스트백도 차단됩니다.

도움이 되었습니까?

해결책

포스트백 제어를 비활성화하려면 이 예를 참조하세요.이는 당신이 달성하려는 일을 하는 데 도움이 될 것입니다.

http://encosia.com/2007/04/17/disable-a-button-control-during-postback/

다른 팁

포스트백 시 비활성화된 버튼을 표시하고 싶지는 않습니다.실수로 두 번 제출하지 않도록 하고 싶습니다.따라서 버튼을 비활성화하거나 숨기는 것은 다음과 같습니다. 서버 측 행동은 이미 게임에서 너무 늦었습니다.이 시점에서 이미 두 번째 요청이 진행 중입니다.자바스크립트로 수행하거나 서버 측 코드가 두 번 실행되지 않는지 확인해야 합니다.

FormView-Template 내부에 업데이트 패널과 버튼이 있는 경우 다음 접근 방식을 사용합니다.

<script type="text/javascript">
    // Using that prm reference, hook _initializeRequest
    Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequestBuchung);

    // Abfangen von Mehrfachklicks auf Buttons für asynchrone Postbacks im Updatepanel
    function InitializeRequestBuchung(sender, args) {
        var arrButtonIds = ["ButtonInsert", "ButtonUpdate"];

        // Get a reference to the PageRequestManager.
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        if (prm.get_isInAsyncPostBack() & jQuery.inArray(args.get_postBackElement().id, arrButtonIds) > -1) {
            args.set_cancel(true);
        }
    }
</script>

현재 비동기 포스트백이 여전히 활성화되어 있는 경우 다음 포스트백이 취소됩니다.완벽하게 작동합니다.

며칠 전에 다른 사람이 여기 어딘가에서 이런 말을 했고 나도 동의합니다. 자바스크립트를 사용하여 간단히 숨다 버튼을 비활성화하는 대신;해당 위치에 "스피너" 이미지를 표시하여 사용자에게 무슨 일이 일어나고 있는지 알 수 있습니다.

숨기는 대신 자바스크립트를 사용하여 버튼을 교체했습니다.첫 번째 버튼을 클릭하면 회색으로 표시된 또 다른 이미지가 표시됩니다.

Button 속성 UseSubmitBehavior를 false로 설정합니다.그런 다음 버튼을 비활성화하는 OnClientClick 함수를 만듭니다.다음과 같이 보일 것입니다 :

<script type="text/javascript">
   function disableFunctn(button){
       button.disabled = true;
   }
</script>
<asp:Button ID="button1" UseSubmitBehavior="false" OnClientClick="disableFunctn(this);"/>

가장 빠르고 저렴한 방법:

<asp:Button ID="button1" UseSubmitBehavior="false" OnClientClick="this.disabled=true;"/>

예를 들어 btnSave.Enable = false;를 시도해 볼 수도 있습니다.버튼이 눌렸을 때와 클릭 이벤트 루틴에서 버튼 처리가 완료되기 전.활성화하기 위해 재설정해야 하는 경우 재사용을 위해 버튼을 재설정하는 별도의 버튼이 있습니다.

또 다른 방법은 사용자에게 저장 여부를 묻는 메시지가 두 번 팝업되도록 확인 버튼을 설정하는 것입니다.

또 다른 방법은 첫 번째 발생에 플래그를 지정한 다음 두 번째 발생에 대한 팝업을 설정하여 두 번째 또는 후속 사용을 확인하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top