请教Page.IsPostBack的问题

chenyq2008 2006-10-09 11:03:15
看了一些资料,说Page.IsPostBack是页面回发和刷时才执行,现在有个问题想请教一下:
例如有如下一段代码:
<%@ Page Language="C#"%>
<html>
<head>
</head>
<body>
<form runat=server>
<%
if(!Page.IsPostBack){
Name.Text = "首次加载";
}
else{
Name.Text = "不是首次加载";
}
%>
<asp:label id="Name" runat=server/>
</form>
</body>
</html>
打开页面显示的是“首次加载”,按照资料里说刷新时执行IsPostBack,但我刷新N次,页面还是显示“首次加载”,请问是什么原因呢?而在窗体里加个按钮控件后点按钮就可以显示"不是首次加载"。
...全文
309 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
isPostBack取决于提交的数据中有没有 __ViewState(或者差不多相同作哟个的那些隐藏关键字段),如果有,asp.net就设置isPostback为true。

所以你原来的isPostback是什么(true or false),点击ie的刷新大概应该得到同样的结果。
kinemax 2006-11-28
  • 打赏
  • 举报
回复
程序放的位置不对,LZ放的地方代码根本就没有执行,应改放到page_load事件中,活着作个button控件在onclick事件
azurebz 2006-11-28
  • 打赏
  • 举报
回复
sunchaohuang(流星飞狐(oO!)) 说的很对了
cmydl 2006-11-28
  • 打赏
  • 举报
回复
获取一个值,该值指示

 是正为响应客户端回发而加载用户控件,(true)

 还是正第一次加载和访问用户控件。 (false)

IE刷新并没有产生回发,只是客户端重新请求服务器,服务器响应请求并重新加载该页面!

 (不要混淆第一次和一次的概念)
chenanlin1981 2006-10-11
  • 打赏
  • 举报
回复
pol000(菜鸟学编程)讲得已经很清楚了
LZ可以用一个服务器控件测试一下
hz890 2006-10-11
  • 打赏
  • 举报
回复
lz把代码写在Page_Load事件里,就可以了。
szc21 2006-10-11
  • 打赏
  • 举报
回复
刷新和回发是不一样的,PostBack回发数据
qghboy 2006-10-11
  • 打赏
  • 举报
回复
关注
chenyq2008 2006-10-11
  • 打赏
  • 举报
回复
“如果是为响应客户端回发而加载该页,则为 true;否则为 false”

刷新浏览器时也算是客户端回发而加载页啊,但你会发觉首页加载后刷新ie,永远是false
tesling 2006-10-11
  • 打赏
  • 举报
回复
刷新时应该获取的是服务器缓存的数据,并没有重新执行服务器端代吗吧!
pol000 2006-10-11
  • 打赏
  • 举报
回复
Page.IsPostBack 属性请参见
获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。
属性值
如果是为响应客户端回发而加载该页,则为 true;否则为 false
下面的示例测试 IsPostBack 属性的值以在加载了 Page 时按条件为所有验证服务器控件
[C#]
void Page_Load() {
if (!IsPostBack) {
// Validate initially to force asterisks
// to appear before the first roundtrip.
Validate();
}
}


chenyq2008 2006-10-11
  • 打赏
  • 举报
回复
ahone(VB啊 我被c#强暴了) ( ) 信誉:100 Blog
刷新应该是发出一个 get请求 点击按钮发出post请求

回这位朋友:我试过将form的method改为get,ispostback还是为true的,那说明不是get的问题吧。

fdlm_dark() ( ) 信誉:100 Blog
这么说吧。你没post东西所以就当第一次了。
你先点一次控件然后再按浏览器的就会提示你是否提交了应该。提交的话IsPostBack=true否则=false

回这位朋友:点控件后ispostback=true了,无论怎么刷新浏览器都是true的,但不能说明为什么刷新不改变回发状态。
fdlm_dark 2006-10-11
  • 打赏
  • 举报
回复
这么说吧。你没post东西所以就当第一次了。
你先点一次控件然后再按浏览器的就会提示你是否提交了应该。提交的话IsPostBack=true否则=false
ahone 2006-10-11
  • 打赏
  • 举报
回复
刷新应该是发出一个 get请求 点击按钮发出post请求
gugu1981 2006-10-11
  • 打赏
  • 举报
回复
刷新并不向服务器端提交数据阿,只是一个请求。我的理解
chenyq2008 2006-10-11
  • 打赏
  • 举报
回复
没人懂吗?
chenyq2008 2006-10-09
  • 打赏
  • 举报
回复
点IE的刷新按钮应该也会重新向服务器传送请求的呀,不明白什么原因,请大家指点指点。
Ivony 2006-10-09
  • 打赏
  • 举报
回复
谁说的刷新会使IsPostBack为true?PostBack就是回发,回发就是PostBack,极明显的事情
chenyq2008 2006-10-09
  • 打赏
  • 举报
回复
是的,我点的就是IE的刷新按钮,跟在页面上放个服务器控件按钮刷新有什么不同??
sunchaohuang 2006-10-09
  • 打赏
  • 举报
回复
你是点的IE的刷新按钮吧
你在页面上放一个服务器端的控件,例如按钮,点击看看
加载更多回复(2)

62,046

社区成员

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

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

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

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