如何在代码背后使用javascript确认方法

时间:2013-10-31 07:54:44

标签: c# javascript asp.net code-behind

else if (Result == 1)
{
  ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "Test", "return  confirm('Are you sure you want to delete? This action cannot be undone.')", true);                              
  FSI.DeleteINsertData(ID.ToString(), No.ToString());
}

我对后面的代码有一个js确认。我想在用户点击“是”时继续处理,否则,用户点击“否”,什么都不做。如果声明,那就在其他地方。谢谢你的回答。

3 个答案:

答案 0 :(得分:1)

使用:

Response.Write("<script>confirm('Are you sure you want to delete? This action cannot be undone.');</script>");

可能会工作!

答案 1 :(得分:0)

您的问题意味着您要做的是暂停服务器端代码(在删除任何内容之前),等待一些客户端代码执行(抛出确认框以确保用户确实想要执行删除)。这根本不是事情的运作方式。

所有ScriptManager.RegisterClientScriptBlock(...)调用都告诉服务器它应该在将响应发送到客户端时包含该脚本。然后它不会暂停并发送脚本;相反它只是继续,执行删除和然后页面和脚本被发送到客户端。您无法改变这种行为 - 它是服务器端Web编程工作方式的基本组成部分。

你的选择实际上是让他们在你去服务器之前首先点击他们点击的删除按钮/链接(取消表单提交或链接点击,如果他们改变了主意) )或者让服务器回复该提交/点击一个确认页面,要求他们点击另一个按钮,然后再次返回服务器以实际执行删除。

答案 2 :(得分:0)

我认为您可以在服务器端和客户端之间进行合并。 您可以将脚本添加为代码:
string scriptStr = "<script>var confirmation = confirm('something'); if(confirmation){document.getelementbyid('button').click();} else{//something else}</script>"; RegisterStartupScript("ScriptFunction", scriptStr );

and then in your code behind handle the button click event.
This may works for you.