我必须为函数>
显示yes no popup消息框这就是我为警告弹出窗口>
所做的 Page.ClientScript.RegisterStartupScript(this.GetType(), "Alert", "<script>alert('File Updated');</script>");
这就是我想要在后面的代码中做的事情:
if (ID != 0)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "Confirm", "<script>confirm('are you sure?');</script>");
if (yes)
{
perform function
}
else
{
return;
}
}
确认不起作用,,,有关如何执行此操作的任何建议 感谢
编辑部分:
所以我得到了这样的确认框..但我怎样才能得到所选的
string scriptString = "<script language='JavaScript'> ";
scriptString += "confirm ('Are you sure you want to Close this period.')";
scriptString += "</script>";
Response.Write(scriptString);
答案 0 :(得分:6)
您是否有点击按钮来触发操作?如果是这样,您应该将客户端事件添加到Web控件中,如下所示:
<asp:ImageButton runat="server" ID="DeleteUrlImageButton" ImageUrl="~/Images/icon_remove.gif"
OnClick="DeleteUrlImageButton_Clicked"
OnClientClick="return confirm('Are you sure you want to delete?');" />
如果用户选择“是”,则回发正常。如果他们选择否,则取消偶数并且不发生回发。这个IMO是处理它的方法,因为如果它们选择no,它会阻止任何额外的服务器活动。
答案 1 :(得分:2)
添加链接按钮。
在OnClientClick添加
javascript:return confirm('Are you sure')
如果单击“否”,则不会启动回发。如果他们点击是,它将启动回发。
然后在按钮的代码后面(OnClick)执行服务器端处理: (只有在点击“是”时才会执行)
if (ID != 0)
{
Perform function
}
答案 2 :(得分:1)
您尝试做的似乎是(在简化的情况下):
ID
的值(假设
它是一个查询字符串参数)ID
的值非零,则提示
用户确认你犯的错误是试图在代码隐藏中完全处理2,3和4。您发出的脚本(通过调用RegisterStartupScript
)在整个页面呈现给用户之前不会执行,此时步骤3和4的代码检查{的值{1}}并且已经“跳过”了
您需要做的是决定如何将客户端站点和服务器端之间的工作分开,因为您尝试执行的操作将无法正常工作。在不知道您的页面如何工作以及ID值来自何处的情况下,我无法给出一个特定的示例,但是,类似于:
ID
以查看它是否符合您的条件,如果是,则发出javascript,但使用一些附加 javascript检查对提示的响应并导致要重新提交的页面,但在查询字符串上添加了confirm = yes 答案 3 :(得分:1)
你不能这样做。 RegisterStartupScript只是在最终呈现页面时注册要包含的脚本。在呈现(到HTML)之后,html被发送到浏览器。因此,当用户最终看到该弹出窗口时,您的代码早已完成。
编辑:
请参阅Mike C的answer:您需要在提交之前将该确认移至。
答案 4 :(得分:1)
这里看到的问题是,在没有回发的情况下,你无法获得确认框的值。 JavaScript在客户端运行,直到发生回发(通过ajax或常规方式),它无法与您的C#文件“对话”。
您需要做的是在JavaScript中添加一个确认框,如果单击是,则会回发到您的Asp.net页面并通过Ajax或(示例)form.submit()
运行代码。< / p>
答案 5 :(得分:0)
Page.ClientScript.RegisterStartupScript将在客户端上注册该脚本。据我所知,您正在服务器上执行if语句。你能指出哪些确认不起作用?警报框是否显示但是否应该按下是/否?如果是这样,请在客户端上移动if ... else语句。无论如何,我建议你用这段代码替换RegisterStartupScriptBlock:
ClientScript.RegisterClientScriptBlock
(this.GetType(), "confirm", "alert('do')", true);