2009-11-18 4 views
3

나는 gridview에서 삭제 단추가 있습니다. 과 같이 버튼 출력을 삭제의 나 asp.net에 익숙하지 분들을 위해 : 그들이 삭제 하시겠습니까 경우jQuery UI 확인 대화 상자 및 asp.net 포스트 백

<a id="ctl00_cp1_dtgrAllRates_ctl02_lbDelete" 
    class="lb" 
    href="javascript:__doPostBack('ctl00$cp1$dtgrAllRates$ctl02$lbDelete','')"> 
Delete</a> 

나는 사용자를 요청할있는 gridview의 모든 삭제 링크에 매여 확인 대화 상자가 있습니다. 아무런 문제가 없지만 확인을 클릭하면 포스트 백 (href 값)을 실행하려고합니다. 대화 코드가 클릭되는 링크와 분리되어 있으므로 'href'를 'this'에 잡을 수는 없으므로 어떻게해야할지 모르겠습니다.

var theID = $(this).attr("href"); 

화재가 발생했습니다. href val을 대화 상자 코드 나 다른 매개 변수로 전달할 수있는 몇 가지 방법이있어 'Confirm Delete'섹션에서 버튼을 클릭 할 때 사용하고 'Cancel'을 클릭하면 대화 상자가 닫힙니다. 여기

내 jQuery 코드입니다 :

$(document).ready(function(){ 
    $("#dialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     width: 400, 
     height: 200, 
     modal: true, 
     buttons: { 
       'Confirm Delete': function() { 
        $(this).dialog('close'); 
        //fire href here preferably 
        }, 
       Cancel: function(){ 
        $(this).dialog('close'); 
        } 
      } 
    }); 

    $(".lb").click(function(event){ 
     $("#dialog").dialog('open'); 
     event.preventDefault(); 
    }); 

}); 

TIA

로이드

답변

6

좋아, 해결할 수 있습니다. 좀 도움이 게시물에 건너 온 :

How to implement "confirmation" dialog in Jquery UI dialog?

포스트에서 제공하는 예는 매우 대화 상자의 인스턴스는 클릭 처리기에 올바르지 간단하기 때문에 작동하지 않는 그러나. 대화 상자가 이미 인스턴스화되면 대화 상자에 속성/옵션을 설정하는 다른 방법이 있습니다. 그래서 내 마지막 코드는 다음과 같습니다.

$(document).ready(function(){ 

$("#dialog").dialog({ 
    modal: true, 
     bgiframe: true, 
     width: 500, 
     height: 200, 
    autoOpen: false 
    }); 


$(".lb").click(function(e) { 
    e.preventDefault(); 
    var theHREF = $(this).attr("href"); 


    $("#dialog").dialog('option', 'buttons', { 
      "Confirm" : function() { 
       window.location.href = theHREF; 
       }, 
      "Cancel" : function() { 
       $(this).dialog("close"); 
       } 
      }); 

    $("#dialog").dialog("open"); 

}); 

}); 

희망이 있으면 다른 사람에게 도움이됩니다. 구르 다, 도움을 주셔서 감사합니다. :)

3

가이 작업을 수행하는 아마 청소 방법,하지만 난 당신의 컨텍스트를 잡을해야 할 것 생각할 것 대화 상자에서 href를 사용하기 위해 클릭하는 링크. 그런 다음 해당 매개 변수로 생성 된 후에도 대화 상자를 열 수 있습니다. 좀 더 효율적인 방법에 대해 좀 더 생각해 보겠습니다. 그러나 희망적으로 이것은 몇 가지 기어를 돌려 드리겠습니다 ...

$(".lb").click(function(event){  

     var theHREF = $(this).attr("href"); 



     $("#dialog").dialog({ 
     bgiframe: true, 
     autoOpen: false, 
     width: 400, 
     height: 200, 
     modal: true, 
     buttons: { 
       'Confirm Delete': function() { 

        //href fired here 
        window.location.href= theHREF; 

        }, 
       Cancel: function(){ 
        $(this).dialog('close'); 
        } 
      }  

    }).dialog('open'); 
+0

안녕하세요 Gurdas 감사합니다. 코드를 입력했는데 전혀 작동하지 않습니다. 페이지가로드되고 대화 상자가 실행되지 않을 때 div가 표시됩니다. : s 당신이 조금 더 생각할 수 있었으면 좋겠다. 나는 머리를 긁적이다. :) – lloydphillips

0

몇 시간 전 나는 이것을 위해 표준 통합 방식으로 a web control을 구축했습니다. 보세요.

+0

제발이 커뮤니티를 통해 제품을 판매하지 마십시오. 가능하다면 대답하십시오. – Ravimallya