2011-11-29 64 views
3

我一直在研究ASP.NET中對話框的使用。對於基於Web的應用程序來說,它與我在Windows應用程序中使用的對話框似乎有很大不同。ASP.NET對話框建議

我有一個帶有自己的提交按鈕和代碼的ASP.NET窗體。在該提交按鈕的事件處理程序中,我想要一個模式對話框來詢問用戶其他信息並返回執行提交按鈕代碼的其餘部分。問題是如何做到這一點。

JQueryUI對話框模態窗體是我看過的一個選項。我只是想知道如何在對話框消失後繼續執行ASP.NET窗體的提交按鈕代碼。另外,我必須考慮服務器端/客戶端編碼之間的區別。

任何想法/建議,非常感謝。

注:我用VS2003和.Net 1.1

+1

僅供參考,這是ASP.NET,而不是ASP。此外,也許有時間進行更新?您正在談論現在時8歲,[不支持的軟件](http://support.microsoft.com/lifecycle/?p1=1249)。 –

回答

3

參見以下鏈接的問題,我的回答,我用一個隱藏asp:buttoncallback

ASP.NET with jQuery popup dialog: how to post back on dialog closing

標記:

<span onclick='showjQueryUIDialogOkBtnCallback("<%= btnHidden.ClientID%>","<%= yourModalDialog.ClientID%>", "OK", true, 600,600)'>show dialog</span> 

<div id="yourModalDialog" runat="server"> 
    your modal dialog div 
</div> 

<asp:button id="btnHidden" style="display:none" runat="server" onclick="btnHidden_Click"/> 

腳本:

function showjQueryUIDialogOkBtnCallback(buttonToClick, dialogSelector, buttonTxt, isModal, width, height) 
{ 
     var buttonOpts = {}; 
     buttonOpts[buttonTxt] = function() { 
      $("#" + buttonToClick).trigger('click'); 
     }; 

     buttonOpts['Cancel'] = function() { 
      $(this).dialog("close"); 
      $(this).dialog('destroy'); 
     } 

     $(dialogSelector).dialog({ 
      resizable: false, 
      height: height, 
      width: width, 
      modal: isModal, 
      open: function (type, data) { 
       $(this).parent().appendTo("form"); //won't postback unless within the form tag 
      }, 
      buttons: buttonOpts 

     }); 

     $(dialogSelector).dialog('open'); 

    } 
+0

謝謝。我仍然決定採取這種方法,但您的答案非常好。 – Thomas

1

我想你最好的選擇將是使用的是Modal Popup available in the AJAX Control ToolKit編碼此。它將允許您基本上處理彈出窗口,就像它是窗體的一部分(實質上是)。

+0

+1我在想同樣的事情。 MSDN上還有一個客戶端JavaScript參考。 – Tim

+0

我真的很想,但我使用VS2003和.Net 1.1編寫了這個程序,它不允許使用Ajax ToolKit。我會用這個重要信息更新我的問題。 – Thomas

+0

-1感謝您試圖提供幫助,但這不適用於.NET 1.1。 –