关于Page.IsPostBack的问题?

senhuxi 2005-11-14 04:43:23
private void Page_Load(object sender, System.EventArgs e)
{
  if(!Page.IsPostBack)
  {
    产生一个随机数;
  }
}

我想问一下通过if(!Page.IsPostBack)判断后不是只有在第一次打开该网页的时候才会执行吗?为什么我每刷新页面一次随机数就执行改变一次?
...全文
371 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
dnboy 2006-03-14
  • 打赏
  • 举报
回复
IsPostBack表示的是有按钮提交执行,而你只是刚打开页面没有执行任何提交动作就刷新,当然会继续执行产生随机数了
BenBenBoy 2006-03-14
  • 打赏
  • 举报
回复
刷新,就相当于在IE的地址栏里面又敲了一遍相同的地址,然后按回车。此时只有Request

提交,就是点了画面上的按钮。什么叫做PostBack?你看你的页面上不是有
form id="Form1" method="post" 类似的语句嘛。按了submit按钮以后,就以POST的形式向服务器提交了,此时才有PostBack
BenBenBoy 2005-11-14
  • 打赏
  • 举报
回复
刷新跟提交是两回事啊。
  • 打赏
  • 举报
回复
isPostBack是根据asp.net自动生成那三个隐藏字段(用于保存状态)是存在来判断的。刷新的时候,重新发送上一页面的http报文(get或者post,包括参数都不改变),所以刷新根本不会改变页面的isPostBack的判断值。
  • 打赏
  • 举报
回复
如果你第一次访问页面,客户端看到结果后点“刷新”,这时候isPostBack=false。如果回发页面,客户端看到结果后点“刷新”,这时候isPostBack=true。刷新对isPostBack没有影响。

刷新就是浏览器重新(重复)发送上一个http命令给服务器,绝对不是仅仅本地刷新一下屏幕,否则就不可能执行服务器端程序。
bitliuyang 2005-11-14
  • 打赏
  • 举报
回复
IsPostBack判断是否向服务器回发了,当你刷新的时候并没有项服务器回发,所以IsPostBack地值是false !false就是true所以会执行你产生随机数的程序;
如果你想就执行一次可以这样:
用ViewState["num"]
private void Page_Load(object sender, System.EventArgs e)
{
  if(!Page.IsPostBack)
  {
    ViewState["num"]="";
  }
if(ViewState["num"].ToString()=="")
{
产生一个随机数;
ViewState["num"]=产生的随机数;
}
}
fangbuge 2005-11-14
  • 打赏
  • 举报
回复
“刷新”它是一定会执行的其中的内容的
有时,按了其它的按钮时,它都会执行,没什么可奇怪的。
hubinasm 2005-11-14
  • 打赏
  • 举报
回复
To: senhuxi(森呼吸)
设置断点跟踪一下就知道了
kevin_gao 2005-11-14
  • 打赏
  • 举报
回复
IsPostBack意思是判断是否提交,或者页面上某个服务端控件被触发而引起的事件。你如果手动刷新页面,那么还是会IsPostBack为false的。
你要判断用户是否第一打开该页面?是什么意思?用户关了再开还算第一次打开么?可以考虑用session/cookie等技术

Page.IsPostBack 属性
属性值
如果是为响应客户端回发而加载该页,则为 true;否则为 false。

senhuxi 2005-11-14
  • 打赏
  • 举报
回复
我的问题是,刷新就会执行
YaTou_521 2005-11-14
  • 打赏
  • 举报
回复
刷新也向服务器回发了,ispostback的值是true,而判断为!Page.ispostback当然不执行了
giantboy520 2005-11-14
  • 打赏
  • 举报
回复
关注
senhuxi 2005-11-14
  • 打赏
  • 举报
回复
if(!Page.IsPostBack)意思是在第一次加载中执行,就是因为页面一刷新也执行才奇怪?
senhuxi 2005-11-14
  • 打赏
  • 举报
回复
post信息什么意思?如何改变?
如果这样说那if(!Page.IsPostBack)还有什么实际作用?
Layto 2005-11-14
  • 打赏
  • 举报
回复
!Page.IsPostBack:只在第一次加载时执行。。。。
活靶子哥哥 2005-11-14
  • 打赏
  • 举报
回复
只要没有post信息的刷新 就改变

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧