2017-02-19 6 views
0

업데이트 패널에서 버튼을 클릭하고 "beforeunload"이벤트가 시작되지 않으면 문제가 발생합니다. 다른 이벤트를 발생 시키려면이 이벤트가 제대로 발생합니다. 다음은 내 코드입니다 : javascript "beforeunload"이벤트가 업데이트 패널을 사용할 때 발생하지 않습니다.

function dontlogout() //for postback refreshes 
{ 
    postback = true; 
    alert(postback); 
} 
$(window).bind('beforeunload',function() { 

    if(postback==false) 
    { 
     //my logout code here; 

    } 

    else 
    { 
     postback = false; 
    } 
    }); 
<asp:Button runat="server" ID="cmdOut" OnClientClick="dontlogout();" Text="next" OnClick="cmdOut_Click"></asp:Button> 

<asp:UpdatePanel runat="server" ID="updQuestion" > 
    <ContentTemplate>       
<asp:Button runat="server" ID="cmdNext" OnClientClick="dontlogout();"  Text="next" OnClick="cmdNext_Click"></asp:Button> 

</ContentTemplate></asp:UpdatePanel> 

난 업데이트 패널에 cmdNext를 클릭 한 다음 내 로그 아웃 코드가없는 실행 브라우저를 닫을 때 내가 cmdOut 버튼을 아무 문제 때 가까운 브라우저가 실행 코드를 로그 아웃의 나 클릭,하지만

.
이 문제를 어떻게 해결할 수 있습니까?

+0

가능한 중복되지 window.onbeforeunload 작동] (http://stackoverflow.com/questions/7255649/window-onbeforeunload-not-working) 그걸로 –

답변

0

그냥 업데이트 패널의 종료 태그 전에 '트리거'태그를 추가 onbeforeunload

$(window).bind('beforeunload',function() { 

    if(postback==false) 
    { 
     //my logout code here; 

     // Ok you can leave because you dont return 
    } 

    else 
    { 
     postback = false; 
     return "You cannot leave"; // You cannot leave 
    } 
    }); 
+0

윈도우 확인하지만 내 문제가 해결되지 확인 – saeid6366

0

의 기능 콜백에 반환해야

<asp:UpdatePanel runat="server" ID="updQuestion" > 
    <ContentTemplate>       
<asp:Button runat="server" ID="cmdNext" OnClientClick="dontlogout();"  Text="next" OnClick="cmdNext_Click"></asp:Button> 

</ContentTemplate> 
<Triggers> 
     <asp:PostBackTrigger ControlID="cmdNext" /> 
    </Triggers> 
</asp:UpdatePanel> 
[의