2010-05-27 2 views
0

그리드의 각 행에 대해 asp : ImageButton이 삭제 된 gridview 컨트롤이 있습니다. 내가 원하는 것은 jquery 대화 상자가 사용자가 삭제 버튼을 클릭하여 삭제할 것인지 물어볼 때 팝업되도록하는 것입니다.
지금까지 대화 상자가 잘 보였습니다. 대화 상자에 단추가 있습니다. 단추가 서버 측 메서드를 호출하도록 할 수 있지만 사용자가 선택한 행의 ID를 알고 대화 상자를 통해 전달합니다. 서버 쪽 코드.

페이지 행의 버튼은 현재 'dialog_link'라는 id를 가진 'a'태그입니다. 페이지 JQuery와는 다음과 같습니다jquery 대화 상자는 버튼 매개 변수가있는 서버 측 메서드를 호출합니다.

$("button").button(); 
    $("#DeleteButton").click(function() { 
     $.ajax({ 
      type: "POST", 
      url: "ManageUsers.aspx/DeleteUser", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msg) { 

       // Replace the div's content with the page method's return. 
       $("#DeleteButton").text(msg.d); 
      } 
     }); 
    }); 

    // Dialog   
    $('#dialog').dialog({ 
     autoOpen: false, 
     width: 400, 
     modal: true, 
     bgiframe: true 

    }); 

    // Dialog Link 
    $('#dialog_link').click(function() { 
     $('#dialog').dialog('open'); 
     return false; 
    }); 


대화 자체가 바로 'DIV'태그의 집합입니다. Ive는이 작업을 수행하는 다양한 방법을 생각했지만 (매개 변수 전달, 세션 변수 등 ...) 그 중 어떤 것을 작동시키는 지 파악할 수 없습니다. 모든 아이디어가 가장 환영합니다

언제나처럼, 기여한 사람에게 미리 감사드립니다.

답변

2

나는 최근에 일하는 것과 정확히 똑같은 일을했습니다 - 삭제 항목을 확인했습니다. 데이터 http://docs.jquery.com/Data 메서드를 사용하여 전달하려는 값을 저장하여 해결했습니다.

<a href="#" class="delete" id="1">Delete</a> 

그런 다음이 대화 상자의 데이터 설정 발생하면 클래스, "삭제"에 대한 모든 클릭 모니터 : 링크를 삭제 내 예제에 대한 그래서

는 다음했다

$("#dialog").data("id", $(this).attr("id")); 

을 어느 대화 상자에있을 때 액세스 할 수 있습니다.

$("#dialog-confirm").dialog({ 
     resizable: false, 
     height:140, 
     modal: true, 
     buttons: { 
      'Delete': function() { 
       alert($(this).data('id')); 
       $(this).dialog('close'); 
      }, 
      Cancel: function() { 
       $(this).dialog('close'); 
      } 
     } 
    }); 

희망 사항이 명확하지 않으면 큰소리로 외치십시오.

+0

빠른 답장을 보내 주셔서 감사합니다. Alistair, 저는 지금 아주 가까이 있습니다. 이제는 매개 변수를 서버 쪽 방법으로 전달할 수 있어야합니다. 내 AJAX 메서드에서 메서드 URL : "ManageUsers.aspx/DeleteUser"를 등록하는 데 사용합니다. Ive는 "ManageUsers.aspx/DeleteUser ("+ $ (this) .data ('id') + ")"에 매개 변수를 넣으려고 문자열을 분할하려고했지만 아무 쓸모가 없습니다. 마지막 퍼즐 조각을 얻는 방법에 대한 아이디어가 있습니까? – Chiefy

+0

'$ .ajax ({data : $ (this) .data ('id'), 완료 :/* so on * /}); ' – Gutzofter

+0

고맙습니다. 좋습니다, 이것에 대해 더 자세히 읽은 후에 매개 변수가 쿼리 문자열로 전달되는 것을 볼 수 있습니다. 서버 측 메소드가 정적인데 어떻게 쿼리 문자열 객체에 액세스합니까? – Chiefy