ASP防止页面刷新重新提交数据的方法

Response.Write("<script language='JavaScript'>alert(' 弹出窗口!');window.location=' a.aspx';</script>");

    比如在1.aspx页面上点按钮,弹出来一个提示窗口,同时又希望按F5刷新的时候,不要重复提交,这个时候,把上面这段代码写到按钮的click事件里,把a.aspx换成1.aspx页面就行了。
    这里的方法实际上就是弹出窗口后重新指向原来的页面,如果是用Response.Redirect()方法的话,虽然可以实现指向新的页面的功能,但是就不会弹出窗口提示了。

http://blog.youkuaiyun.com/kgdiwss/archive/2005/08/04/445846.aspx

转,孟老大的解决方法

如何区分刷新和提交?

DetectRefresh.aspx
===========================

<%@ Page Inherits="StevenBey.Web.UI.Page" %>
<html>
<head>
<title>Detecting Page Refresh [Demo]</title>
</head>
<body>
<form runat="server">
<asp:button Text="Test Refresh" runat="server" />
</form>
IsRefresh = <%= IsRefresh %>
</body>
</html>


StevenBey.Web.UI.Page.cs
======================
namespace StevenBey.Web.UI
{
public class Page : System.Web.UI.Page
{
private bool _refreshState;
private bool _isRefresh;

public bool IsRefresh
{
get
{
return _isRefresh;
}
}

protected override void LoadViewState(object savedState)
{
object[] allStates = (object[]) savedState;
base.LoadViewState(allStates[0]);
_refreshState = (bool) allStates[1];
_isRefresh = _refreshState == (bool) Session["__ISREFRESH"];
}

protected override object SaveViewState()
{
Session["__ISREFRESH"] = _refreshState;
object[] allStates = new object[2];
allStates[0] = base.SaveViewState();
allStates[1] = !_refreshState;
return allStates;
}
}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值