我目前正在使用C#处理asp.net,我需要显示一个消息框并确认用户的输入并重定向到另一个页面,我的代码是这样的:
protected void Button1_Click(object sender, EventArgs e)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("<script language='javascript'>");
sb.Append("if (confirm('YES OR NO?')){ /*some javascript code*/ }");
sb.Append("</script>");
Page.RegisterStartupScript("FocusScript", sb.ToString());
Response.Redirect("Default.aspx");
}
此处问题是直接重定向到下一页而不显示消息框。
如果我删除Response.Redirect("Default.aspx");
它会成功显示消息框。我认为这里可能是Response.Redirect()
与javascript
我尝试使用
sb.Append("if (confirm('YES OR NO?')){ window.location.href = \"Default.aspx"; }\");
而不是使用Response.Redirect()
但页面没有被重定向,我该怎么做才能解决这个问题?
答案 0 :(得分:6)
您是否绝对需要在服务器端处理此问题?事实上,这很容易让人感到困惑。
例如,如果可以使用Javascript / jQuery处理它,你可以做一些简单的事情:
$('#Button1').click(function(){
if (confirm("Yes or No?")){
window.location = "/default.aspx";
}
});
答案 1 :(得分:4)
可以选择在客户端点击事件中添加javascript
例如: -
<asp:button id="Button1" OnClientClick="javascript:return confirm('Are you sure?');" runat="server" onclick="Button1_Click" />
然后在代码方面简单地重定向页面。
答案 2 :(得分:1)
Confirm
是一个JavaScript函数,它在客户端执行。注册后,您会立即重定向到另一个页面,因此该功能永远不会执行。
答案 3 :(得分:1)
在Page_Load
Button1.Attributes.Add("onclick", "if(confirm('do you want to redirect?')){}else{return false}");
现在你点击按钮会先触发java确认模式框。
至于你的Button1点击
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
这个想法是 - 只有在用户通过单击确定确认后才会触发您的代码隐藏Button1_Click事件
答案 4 :(得分:0)
我认为最好在页面加载时向按钮添加属性,并将button_click函数保留为仅重定向。像这样的东西(页面加载):
button.attribute.add("onclick","Javascript:confirmFunction();")
按钮点击中的只有这个:
protected void Button1_Click(object sender, EventArgs e)
{
Response.Redirect("Default.aspx");
}
终于在JS中有了这个:
<script>
function confirmFunction()
{
if(Confirm("Yes OR NO")
//Add your JS Code
return true; //will pass onto server
else
//Add your JS Code
return false; //will not go to server
}
</script>
HTH