c#中的弹出消息框

时间:2014-04-09 14:09:10

标签: asp.net messagebox webusercontrol

我正在寻找类似于http://www.how-to-asp.net/messagebox-control-aspnet/的自定义用户控件,但能够显示为弹出窗口。消息框应该具有从asp.net 4中的代码调用的功能,使用事件挂钩来绑定" ok"和"取消"按钮。

我熟悉Ajax Toolkit和JQuery。

类似方向的参考和/或样本将非常有用。

谢谢!

3 个答案:

答案 0 :(得分:5)

使用jQuery UI。他们有很好的例子。我一直在使用对话框。

您可以查看其来源,以下是一个示例。

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Dialog - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <script>
  $(function() {
    $( "#dialog" ).dialog();
  });
  </script>
</head>
<body>

<div id="dialog" title="Basic dialog">
  <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>


</body>

您可以随意自定义此项。该链接将告诉您如何执行此操作。

编辑:因为你想在后面的代码中打开它,我将向你展示我的jQuery以及我如何在后面的代码中调用它。我用它来发送电子邮件。

function sendEmail() {
    $("#email").dialog({
       modal: true,
       width: 700,
       buttons: {
          "Send": function () {
             var btn = document.getElementById("<%=lbSend.ClientID %>");
             if (btn) btn.click();
             $(this).dialog("close");
           },
           Cancel: function () {
              $(this).dialog("close");
            }
        }
      );
      jQuery("#email").parent().appendTo(jQuery("form:first"));
    };

然后在后面的代码中。

 protected void btnEmail_Click(object sender, EventArgs e)
 {
      //this calls the jQuery function.
      Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "sendEmail();", true);
 } 

答案 1 :(得分:0)

根据我的经验,如果你想在客户端从服务器端代码打开一些东西,它通常是一个糟糕设计的标志。你确定你需要什么吗?

但假设您这样做,您可以使用Ajax Control Tookit中的ModalPopupExtender。它可以从客户端或服务器端打开。这是一个样本:

<ajaxToolkit:ModalPopupExtender ID="MPE" runat="server"
    TargetControlID="LinkButton1" ClientIdMode="Static"
    PopupControlID="Panel1" />

PopupControlID应该是您想要显示为弹出窗口的面板的ID。如果需要,您可以在该面板上放置按钮。从背后的代码来看,它就像这一样简单......

MPE.Show();

要从JavaScript显示它(假设是jQuery),请确保将ClientIdMode设置为Static,然后调用它...

$('#MPE').show();

答案 2 :(得分:0)

 public void Message(String msg)
    {
        string script = "window.onload = function(){ alert('";
        script += msg;
        script += "');";
        script += "window.location = '";
        script += "'; }";
        ClientScript.RegisterStartupScript(this.GetType(), "Redirect", script, true);
    }