javascript
  • asp.net
  • telerik
  • dopostback
  • telerik-scheduler
  • 2013-08-22 4 views 1 likes 
    1

    somePage.aspxTelrik에서의 이상한 동작 확인?

    <asp:LinkButton Runat="server" ID="butDelete" CommandName="Delete" OnClientClick="Confirmation();return flag;"><img src="images/delete.gif" border="0" title='<asp:Literal runat="server" Text="<%$ Resources:ClarityResources, resDelete %>" />'></asp:LinkButton> 
    

    ClientSideCode.js

    function confirmCallBackFn(sender) { 
          debugger; 
          if (sender) 
           flag = true; 
          else 
           flag = false; 
          return flag; 
         } 
         function Confirmation(sender,args) { 
          debugger; 
          radconfirm('Are you sure you want to delete this file?', confirmCallBackFn); 
         } 
    

    만 클릭에 항상 기본 값 플래그 변수 내가 디버깅 않았다 내가 설정되어 거짓을 반환 클라이언트에서 click 메서드 확인이 호출되고 컨트롤에 기본값 false를 반환하고 확인을 클릭하면 b 황소의 예는 또는 을 취소 그것은 다시 깃발을 반환하지만 동일한 스레드에서하지만 다른 스레드에서 각각 따로 방법 confirmCallBackFn (발신자) 전화를 다시 실행합니다. 나는 그것을 해결하는 다른 방법을 시도했지만 나는 붙어있다. 그래서 어떤 도움이 될 것입니다.

    답변

    1

    일반 javascript confirm()과 동일한 방식으로 radconfirm을 처리하려고 시도하는 중입니다. 이는 비슷한 방식으로 수행되지 않습니다. 확인 기능부터 시작하겠습니다.

    function Confirmation(sender, args) { 
        debugger; 
        // The line below will open a rad confirmation window, it will not wait for the response 
        radconfirm('Are you sure you want to delete this file?', confirmCallBackFn); 
    } 
    
    다음

    가 자동으로 상기 기능을 다시 작성하지 않도록 가 변경되어야

    function Confirmation(sender, args) { 
        debugger; 
        // This line will open a rad confirmation window, it will not wait for the response 
        radconfirm('Are you sure you want to delete this file?', confirmCallBackFn); 
        // The line below will prevent the control from automatically posting back 
        return false; 
    } 
    

    다음 단계는 함수 호출을 다시 보정된다; 매개 변수 이름이 아닌 코드에서 볼 수 있듯이 함수에 전달 된 매개 변수는 확인 상자의 결과를 나타내는 부울 표현입니다.

    function confirmCallBackFn(sender) { 
        debugger; 
        if (sender) 
         flag = true; 
        else 
         flag = false; 
        return flag; 
    } 
    

    이전에 작성된 함수는 값을 반환하지만이 위치는 사용되지 않습니다. 당신은 수도

    function Confirmation(sender) { 
        debugger; 
        // The callback function 
        function confirmCallBackFn(arg) { 
         debugger; 
         if (arg) { 
          // Triggers postback only when confirmation box returns true 
          __doPostBack(sender.id, ""); 
         } 
        } 
        // This line will open a rad confirmation window, it will not wait for the response 
        radconfirm('Are you sure you want to delete this file?', confirmCallBackFn); 
        return false; 
    } 
    

    을 : 보낸 사람이 다음과 같이 다른 자바 스크립트 함수 내에서 함수를 선언 할 필요가 콜백 함수로 전달되지 않기 때문에 다음 코드는 필요한 작업 불행하게도

    function confirmCallBackFn(arg) { 
        debugger; 
        if (arg) { 
         // The line below will perform a post back, you might want to trigger this a different way 
         __doPostBack(sender.id, ""); 
        } 
    } 
    

    을 수행합니다 확인과 같은 방법으로 radconfirm 사용과 관련하여 다음 링크를 찾으십시오.

    http://demos.telerik.com/aspnet-ajax/window/examples/confirmserverclicks/defaultcs.aspx.

    +0

    @talenga하지만 우리가 호출하는 이벤트는 LinkButton입니다. 또한 보낸 사람과 인수 목록을 확인 함수에 전달합니다. –

    +0

    OnClientClick 이벤트의 Confirmation()에 대한 호출을 업데이트하여 링크 단추에 전달되는 "Confirmation (this)"을 사용하여 요소를 전달할 수 있습니다. – talegna

    2

    이것은 사용자에게 삭제 이벤트를 확인하는 방법입니다.

    <telerik:RadButton ID="btnDelete" runat="server" Text="Delete" 
        OnClick="btnDelete_clicked" OnClientClicking="RadConfirm" Width="100px"> 
        </telerik:RadButton> 
    
    <script type="text/javascript"> 
        function RadConfirm(sender, args) { 
         var callBackFunction = Function.createDelegate(sender, function (shouldSubmit) { 
          if (shouldSubmit) { 
           this.click(); 
          } 
         }); 
         var text = "Are you sure you want delete ?"; 
         radconfirm(text, callBackFunction, 300, 100, null, "Confirm Apply !"); 
         args.set_cancel(true); 
        } 
    </script> 
    
        protected void btnDelete_clicked(object sender, EventArgs e) 
        { 
         //Write your server-side delete code here 
        } 
    
    +0

    Telerik의 데모 (이 답변과 유사) : http://demos.telerik.com/aspnet-ajax/button/examples/confirm/defaultcs.aspx – DeveloperDan

     관련 문제

    • 관련 문제 없음^_^