使用MessageBox,更改为“是”或“否”

时间:2013-03-27 14:33:39

标签: javascript jquery asp.net messagebox

string LocalWorkSiteName = WorkSite.Site_Name;

System.Windows.Forms.MessageBox.Show("Are you sure you want to delete invoice " for " + LocalWorkSiteName);

1)为什么弹出窗口总是出现在浏览器后面?我希望它能够在浏览器前加载。

2)如何添加“是”和“否”按钮并删除当前的“确定”?所以在代码背后,如果'是'做一件事,如果'不'做另一件事:

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

我是否采用了正确的方法,还是有更合适的方法?


修改 感谢回复人员...要去JS方面,但我可能需要一些帮助。 所以我的按钮:

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

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

2 个答案:

答案 0 :(得分:2)

也许是这样的:

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

答案 1 :(得分:1)

您正在网页中加载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时单击“取消”,则会发生这种情况。