1
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 还是需要将其更改为输入按钮,然后从那里执行更新背后的代码

4

2 回答 2

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 对话框

于 2013-03-27T14:40:04.557 回答
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" />

OnClientClick如果代码返回 false,该属性将阻止服务器端事件触发,如果用户在调用confirm.

于 2013-03-27T14:45:14.583 回答