使用MessageBox,更改为'Yes'或& # 39;没有# 39;

Using MessageBox, change to 'Yes' or 'No'

本文关键字:没有 Yes 使用 MessageBox      更新时间:2023-09-26
string LocalWorkSiteName = WorkSite.Site_Name;
System.Windows.Forms.MessageBox.Show("Are you sure you want to delete invoice " for " + LocalWorkSiteName);

1)为什么弹出窗口总是出现在浏览器后面?我想让它在浏览器前加载

2)我如何添加"是"answers"否"按钮并删除当前的"OK"?所以在后面的代码中,如果'yes'做一件事如果'no'做另一件事:

if(yesIsPressed)
{
...
}
if(noIsPressed)
{
...
}

我这样做是正确的还是有更合适的方法?


编辑谢谢你们的回复……我将使用JS,但我可能需要一些帮助。所以我的按钮:

<asp:Button runat="server" ID="RemoveInvoice" Text="Remove Invoice" OnClick="RemoveInvoice_Click" CssClass="FadeOutOnEdit" />

运行函数'RemoveInvoice_CLick'背后的代码…我是否也可以让它运行JS或者我是否需要将其更改为输入按钮,然后从那里执行更新后面的代码

可以这样写:

DialogResult result1 = System.Windows.Forms.MessageBox.Show("Are you sure you want to delete invoice for " + LocalWorkSiteName,
        "Important Question",
        MessageBoxButtons.YesNo);
if(result1 == DialogResult.Yes) { ... }
if(resutl1 == DialogResult.No) { ... }

注意*

但是你不应该这样做MessageBox:),因为这是桌面应用程序(System.Windows.Forms),你应该使用一些jQuery或javascript代码。它甚至不会在你的客户端显示,它只会在你的服务器端弹出。

你可以试试jQueryUI Dialog

你正在网页中加载Windows窗体消息框——这是桌面应用程序的控件,而不是web应用程序的控件。你可能会更好地使用JavaScript弹出窗口,这是一个web控件。使用jQuery,你可以给一个按钮的点击事件附加一个回调:

$("#buttonid").click(function() {
  var answer = confirm("Are you sure you want to delete invoice for " + LocalWorkSiteName + "?");
  if (answer)
  {
       // post to server-side
  }
});

或者,如果您想坚持使用ASP.net按钮控件,您可以在其标记中连接事件处理程序:

<asp:Button id="RemoveInvoice" runat="server" Text="Remove Invoice" 
        OnClick ="RemoveInvoice_Click" 
        OnClientClick="return confirm('Are you sure you want to delete invoice?');" 
        CssClass="FadeOutOnEdit" />

如果代码返回false,则OnClientClick属性将阻止服务器端事件触发,如果用户在调用confirm的JavaScript弹出窗口上单击Cancel,则会发生这种情况。