2011-11-29 53 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。 –