2009-11-18 71 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值),如果他們點擊確認。我不知道如何做到這一點,因爲對話框代碼與單擊的鏈接分開,所以我不能只抓住'this'的href,例如

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

和火那。有沒有什麼辦法可以將href val作爲參數傳遞給對話框代碼或某些東西,以便'確認刪除'部分在點擊按鈕時使用它,如果點擊'取消',對話框會關閉?

這裏是我的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 2009-11-18 20:46:39

0

前段時間我已經建立了a web control做到這一點,在一個標準的,集成的方式。看一看。

+0

請不要嘗試通過此社區銷售產品。如果可能,請嘗試回答。 – Ravimallya 2013-06-28 08:30:50