首页 新闻 赞助 找找看

page_preRender 重复提交问题

0
悬赏园豆:10 [已关闭问题]

Page代码就是Form内一个提交按钮如下:

1 <html xmlns="http://www.w3.org/1999/xhtml" >
2  <head runat="server">
3 <title>无标题页</title>
4  </head>
5  <body>
6 <form id="form1" runat="server">
7 <div>
8 <asp:Button ID="Button1" runat="server" Text="提交" onclick="Button1_Click" />
9 </div>
10 </form>
11 </body>
12 </html>

 

.cs代码

代码
namespace WebApplication4.测试重复提交
{
public partial class HuangKai :BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
string dd = "";
}

protected void Button1_Click(object sender, EventArgs e)
{
if (Session["update"].ToString() == Request["viewupdate"].ToString())
{
Response.Write(
"正常提交");
}
else
{
Response.Write(
"重复刷新");
}
}
}
}

 

页面继承之BasePage类

代码
namespace WebApplication4.测试重复提交
{
public class BasePage:System.Web.UI.Page
{
protected void Page_PreRender(object sender, EventArgs e)
{
Session[
"update"] = Server.UrlEncode(DateTime.Now.ToString());
ClientScript.RegisterHiddenField(
"viewupdate", Session["update"].ToString());
}
}
}

 

现在碰到的问题是,我点击button提交 页面显示是“正常提交”,而F5刷新提交则显示是“重复提交”,可不管哪种提交方式,最后都将在页面注册最新的Hidden变量,可为什么不一样呢?我原先以为是按提交是改变变量值,按刷新F5不改变值,可实际上不管哪种方式都会执行Page_PreRender方法,都会将最新的Session["update"]值注册到页面,为什么到后台又不一样了呢,郁闷,还请高手赐教下!

年月的主页 年月 | 初学一级 | 园豆:90
提问于:2010-02-02 13:21
< >
分享
其他回答(1)
0

你想在刷新后不执行这些代码,就用

if(!isPostBack)括起来

Wishbay | 园豆:350 (菜鸟二级) | 2010-02-02 14:02
你还不明白我的意思,我不是执不执行代码,而是刷新提交的问题
支持(0) 反对(0) 年月 | 园豆:90 (初学一级) | 2010-02-02 15:26
0

我看见别人遇见过,应该是basepage注册脚本的问题,不负责任的猜测~~

高凡凡高 | 园豆:95 (初学一级) | 2010-02-05 23:52
注册脚本时你加这个ClientScript.IsStartupScriptRegistered看看,你调试看request的值就知道了。
支持(0) 反对(0) 高凡凡高 | 园豆:95 (初学一级) | 2010-02-05 23:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册