문제

Gridview에 삭제 버튼이 있습니다.asp.net에 익숙하지 않은 사람들을 위해 삭제 버튼은 다음과 같이 출력됩니다.

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

사용자에게 삭제할지 묻는 확인 대화 상자가 Gridview의 모든 삭제 링크에 연결되어 있습니다.아무런 문제가 나타나지 않지만 확인을 클릭하면 포스트백(href 값)을 실행하고 싶습니다.대화 상자 코드가 클릭된 링크와 분리되어 있으므로 이 작업을 수행하는 방법을 잘 모르겠습니다. 예를 들어 'this'에 대한 href를 가져올 수 없습니다.

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

그리고 그걸 발사해.버튼을 클릭할 때 '삭제 확인' 섹션에서 사용하고 '취소'를 클릭하면 대화 상자가 닫히도록 href 값을 대화 상자 코드 등에 매개변수로 전달할 수 있는 방법이 있습니까?

내 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();
    });

});

티아

로이드

도움이 되었습니까?

해결책

좋아, 문제를 해결했습니다.나는 약간의 도움이 되는 이 게시물을 발견했습니다.

Jquery UI 대화 상자에서 "확인" 대화 상자를 구현하는 방법은 무엇입니까?

그러나 게시물에 제공된 예제는 클릭 핸들러에서 대화 상자의 인스턴스화가 잘못되었기 때문에 제대로 작동하지 않았습니다.대화 상자가 이미 인스턴스화되면 대화 상자에서 속성/옵션을 설정하는 다른 방법이 있습니다.그래서 내 최종 코드는 다음과 같습니다.

$(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");

});

});

이것이 다른 사람에게 도움이 되기를 바랍니다.Gurdas님, 도와주셔서 감사합니다. 확실히 방향이 바뀌었습니다.:)

다른 팁

이 작업을 수행하는 더 깔끔한 방법이 있을 수 있지만 대화 상자 구성에 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');

얼마 전에 나는 쌓입니다 웹 컨트롤 이를 위해 표준으로 통합 된 방식으로. 구경하다.

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