2010-05-27 56 views
0

我有一個gridview控件,併爲網格的每一行刪除了asp:ImageButton。我想要的是當用戶點擊刪除按鈕時,彈出一個jquery對話框,詢問他們是否確定要刪除它。
到目前爲止,我的對話框出現的很好,我得到了該對話框上的按鈕,並且我可以使按鈕調用服務器端方法,但它使對話框知道用戶選擇的行的ID,然後傳遞該對話框到服務器端的代碼。

頁面行中的按鈕目前只是一個ID爲'dialog_link'的'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」的標籤。 我想到了很多不同的方法來做到這一點(參數傳遞,會話變量等),但無法弄清楚如何讓它們中的任何一個工作。 任何想法是最受歡迎的

一如既往,在此先感謝那些貢獻者。

回答

2

我最近做了一些完全相同的工作 - 刪除項目的確認。我通過使用Data 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」。我試圖分裂字符串嘗試並將其中的參數「ManageUsers.aspx/DeleteUser(」+ $(this).data('id')+「)」但唉,無濟於事。關於如何實現最後一塊難題的任何想法? – Chiefy 2010-05-27 22:38:31

+0

'$ .ajax({data:$(this).data('id'),complete:/ * so on on//});' – Gutzofter 2010-05-28 01:38:14

+0

Thanks Gutzofter。好吧,在閱讀了更多關於這個之後,我看到參數作爲查詢字符串傳回。由於服務器端方法是靜態的,我如何訪問查詢字符串對象? – Chiefy 2010-05-28 09:08:40