업데이트 중 컨트롤 비활성화 및 강제취소 by ultteky

기벙(giveme80)
꽃밭이네요

 

 

위의 그림은 비동기 요청에 의해 처리되는 도중에 또 다른 요청을 받지 못하게 비활성화를 하고 있으며,

updateprogress 컨트롤 사용하여 진행바 및 작업취소 버튼을 제공하고 있는 모습의 예제이다.

 

이번 예제는 책 지면상에 소스 나타내고 있지 않기에 직접 만든 소스를 살짝 놓아본다

(직접 만들었다고 말하기 부끄럽지만...)

 

(생략)
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
    <script language="javascript">
        var mgr = Sys.WebForms.PageRequestManager.getInstance();
        mgr.add_initializeRequest(kb_star_01);
        mgr.add_beginRequest(kb_star_02);
        mgr.add_endRequest(kb_star_03);

        function kb_star_01(sender, args){
            if(mgr.get_isInAsyncPostBack() && args.get_postBackElement().id.toLowerCase() == "btn1"){
                args.set_cancel(true);
                $get("infoSpan").innerHTML = "이미 요청이 처리중입니다";      
            }
        }

        function kb_star_02(sender, args){
            $get("btn1").disabled = true;
        }
      
        function kb_star_03(sender, args){
            $get("btn1").disabled = false;           
        }
        function CancelRequest(){
            if(mgr.get_isInAsyncPostBack())
                mgr.abortPostBack();
        }
    </script>

    <asp:UpdatePanel ID="UP1" runat="server" UpdateMode="Conditional">
        <ContentTemplate>
            <div class="box" style="background:#efefef">
            <p><asp:Label ID="date1" runat="server"></asp:Label></p>
            <p><asp:Button runat="server" ID="btn1" Text="확인" OnClick="btn1_Click" /></p>
            <span id="infoSpan"></span>          

            </div>
         </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdateProgress ID="UProgress1" runat="server">
        <ProgressTemplate>
        <br />
        <div class="box" style="background:#efefef">
        <img src="ajax-loader2_giveme80.gif" align="absmiddle" /> 작업이 진행중입니다.
        <input type="button" name="btn2" value="작업취소" onclick="CancelRequest()" align="absmiddle" />
        </div>
        </ProgressTemplate>   
    </asp:UpdateProgress>

(생략)


덧글

댓글 입력 영역