2011-11-20 46 views
1

沒有人知道一種方法,其中將有可能插入ASP.NET按鈕(IE:帶有runat="server"標籤A按鈕)成一個jQuery用戶界面對話框(具體的區域中按鈕都包含在內)?插入ASP.NET按鈕進入jQuery的用戶界面對話框

很明顯,這一點是我可以從這些按鈕處理點擊事件serverside。我知道我可以處理click事件,並觸發__DoPostBack方法導致從對話框按鈕回發

例子:

$("#MyDialogDiv").dialog({ 
    height: 400, 
    width: 450, 
    modal: true, 
    buttons: { 
     Ok : function() { 
      __DoPostBack(eventTarget, eventArguments); 
      $(this).dialog("close"); 
     }, Cancel: function() { 
      $(this).dialog("close"); 
     } 
    } 
}); 

但是我希望能實現一個更優雅的解決方案,我仍然可以聲明將按鈕添加到對話框中,但它們會插入到對話框按鈕區域中。

不幸的是我能想到的唯一的辦法基本上是重寫整個對話創造方法的結構,但也許有更好的解決方案嗎?

回答

0

編號喜歡聽到的建議,但看來這可能是唯一的簡單的「大多是通用」的方法來做這個。哈克,但它的作品...

(function ($) { 
    $.fn.CustomDialog = function (options) { 
     this.dialog(options) 
      .parent() 
      .find(".ui-dialog-buttonpane > .ui-dialog-buttonset") 
      .append($(".DialogButton").button()); 
    }; 
})(jQuery); 
0

可以在標記添加服務器按鈕,用display:none風格隱藏它,並使用__doPostBack('<%= ButtonID.ClientID %>', '')腳本確定對話框按鈕

+0

是的,這是一個公平的選擇,但似乎與替代品一樣黑客,並且需要每個「真實」按鈕的隱藏按鈕。 –

-1

你根本不需要插入對話框。當您致電.dialog()時,jQuery UI對話框將作用於容器上。所以在你的例子中,你只需要你的表格元素,包括你的<asp:button />在你的<div id="MyDialogDiv">,然後打電話給.dialog()就可以了。注意:根據我的經驗,這可能比我所概述的要多一點,例如您可能需要將對話框追加到打開的窗體上,因爲jQuery UI將它從DOM中的位置拉出來。

相關問題