使用ASP .NET如何创建对话框消息框?

3
在WinForms中,我可以这样做:
var msg = MessageBox.Show("Are you sure?", "WARNING!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);

if (msg == DialogResult.Yes)
{
    //do something
}

我该如何在ASP .NET/C#中模拟上述行为?

通常情况下不需要。每当你想要一个弹出窗口时,很可能只需要另一个常规页面。 - Servy
看一下这个链接,虽然不完全是你所要求的,但可能会有帮助。如果你想应用那段代码,告诉我,我可以帮你。 - BrOSs
我们都可以使用一个好的对话框例程......我认为这是多年前我编写的第一个函数之一......在Clipper中! - Chris Catignani
8个回答

2
简短的回答是无法做到。原因是在服务器上执行的代码无法直接映射到客户端,所以你无法创建一个交互式消息框来获取用户的响应。
你可以使用客户端的jQuery,然后根据他们的响应发出新的请求。但这与在WindowsForms中使用MessageBox不同,它要求你完全让方法完成,然后基于一个全新的请求采取行动。

1

您可以随时使用JQuery模态对话框

对话框定义:

<div class="ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable">
   <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix">
      <span id="ui-dialog-title-dialog" class="ui-dialog-title">Dialog title</span>
      <a class="ui-dialog-titlebar-close ui-corner-all" href="#"><span class="ui-icon ui-icon-closethick">close</span></a>
   </div>
   <div style="height: 200px; min-height: 109px; width: auto;" class="ui-dialog-content ui-widget-content" id="dialog">
      <p>Dialog content goes here.</p>
   </div>
</div>

对话框打开(仅为示例):

$(foo).dialog({ autoOpen: false })

这绝对是展示对话框的最佳方式,因为jQuery对话框适用于所有浏览器,并且具有许多自定义选项。 - Icemanind
那不是问者想要的。他想知道如何使用阻塞方法向用户发送请求,然后在同一方法中检查用户的响应。这是不可能的。 - Erik Funkenbusch

1

如果您正在使用 asp:LinkButton

<asp:LinkButton id="btnSubmit" runat="server" OnClick="btnSubmit_Click" />

在代码后台:
public void Page_Load(object sender, EventArgs e)
{
    this.btnSubmit.Attributes.Add("onclick", "javascript: return confirm('Are you sure?');");
}

public void btnSubmit_Click(object sender, EventArgs e)
{
    //Run code. User already confirmed to get here.
}

我喜欢这个...简洁明了。 - Chris Catignani

1

你不能从服务器端显示对话框。你需要使用JavaScript来实现。如果你想要它有样式,我建议使用jQuery的对话框


1

您可以使用this jQuery 插件。


0
这是一个展示对话框消息的基本示例:
Page.RegisterStartupScript("UserMsg", "<script>alert('this is my message :) !');</script>");

0
另一个解决方案是使用Bootstrap版本...我发现它很容易实现,并且喜欢添加的效果。
我有一个链接按钮。
    <asp:LinkButton ID="btnDelete"
          runat="server"
          CssClass="btn btn-lg btn-primary"
          Visible="true"
          ToolTip="Delete Task"
          data-toggle="modal"
          data-target="#DeleteModal">
          <span class="glyphicon glyphicon-trash"></span>
    </asp:LinkButton>

还有删除模态框的 Div

<!-- Delete Modal Begin-->
<div class="modal fade" id="DeleteModal" role="dialog">
    <div class="modal-dialog modal-sm">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal">&times;</button>
                <h4 class="modal-title">Delete Task</h4>
            </div>
            <div class="modal-body">
                <p>Are you sure you want to delete task?</p>
            </div>
            <div class="modal-footer">
                <asp:Button ID="Button1" runat="server"
                    OnClick="btnDelete_Click"
                    CssClass="btn btn-primary"
                    Text="Delete" />
                <button type="button" class="btn btn-primary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>
<!-- Delete Modal End -->

Bootstrap 模态框示例

Bootstrap 模态框参考文献


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接