日期:2014-05-18  浏览次数:20473 次

关于ASP.NET中IsPostBack的详细解释
IsPostBack 在网面中起到什么作用啊!
不写有没有影响?
为什么有时候写了反而取不到数据库的值呢?真有点奇怪!

------解决方案--------------------
IsPostBack介绍

IsPostBack是Page类有一个bool类型的属性,用来判断针对当前Form的请求是第一次还是非第一次请求。当IsPostBack=true时表示非第一次

请求,我们称为PostBack,当IsPostBack=false时表示第一次请求。在asp.net框架内部有很多的场景需要判断IsPostBack,比如

LoadAllState等操作就需要在PostBack的时候进行。对于我们自己使用WebForm进行开发时,经常会在Page_Load中对IsPostBack进行判断,因

为第一次请求的时候会执行Page_Load,在非第一次请求的时候也会执行Page_Load。为什么对同一个Form有多次请求呢?asp.net中引入了服务

器端事件,支持服务器端事件的控件,会发出对当前Form的请求,这样在很多情形下我们就需要区别是否是对这个Form的第一次请求。
------解决方案--------------------
一般放在 Page_Load 事件里,判断是不是第一次加载
------解决方案--------------------
只需要网页第一次加载运行的东西,就放在
if(!ispostpack)
{
//这里
}
------解决方案--------------------
放在 Page_Load 事件里,判断是不是第一次加载,如果没有数据交互那这个就可以省去,加了也没效果。如果你的数据交互频繁,那么加后你会发现只有第一次加载时有读取数据,接着刷新还是不变。而当你没有加Ispostback,你每次刷新都会再读数据,所以数据会变(前提是你的数据更新频繁)。
------解决方案--------------------
只需要网页第一次加载运行的东西,就放在
if(!ispostpack)
{
//这里
}

如果这个页面 不是第一次打开, 这里面的 代码不会 执行.这是 微软的 一个优化.
------解决方案--------------------
2L写的很详细了
------解决方案--------------------
了解IsPostBack先需要知道网页的获取方式get和post

然后需要知道asp.net默认情况下网页提交到自身

换而言之,假如A页面上有个按钮,当你首次看到A页面和点击按钮后再看到的A页面是两个不同的页面

IsPostBack就是用来区分是首次看到的A页面(get方式)还是点击按钮后看到的A页面(post方式)
------解决方案--------------------
获取一个值,该值指示该页是否正为响应客户端回发而加载,或者它是否正被首次加载和访问。

语法:public bool IsPostBack { get; }
属性值:如果是为响应客户端回发而加载该页,则为 true;否则为 false。 

常用的就是跳转到本页面的时候,会执行。
点击本页面的服务器控件就不会执行。。
------解决方案--------------------
说的不严密。自己理解
------解决方案--------------------
web每次操作都会重新加载页面,这时需要判断是第一次还是非第一次
------解决方案--------------------
判断网页加载...一般都会加的,当然还得看情况
------解决方案--------------------
但是有些时候,这个值会变得不起作用,比如刷新的时候仍然会执行所谓的IsPostBack里面的内容。
不过如果已经理解了 这个属性的 意思,你也可以自己定义一个 相似的变量,我经常另外定义一个
public static bool IsntPostBack =true;
然后在加载时:

if(IsntPostBack)
{
// ......逻辑
IsntPostBack=false;
}

然后根据需要再在某个合适的地方,对 IsntPostBack 重新赋初值=true; 
以便使它能够周而复始的,按照需要的逻辑不断执行,不至于,使用过一次之后,就无法在执行IsntPostBack条件下的语句。导致代码的不可重用。

比如说我现在登录了一个网站,在首页加载的时候,我希望某个方法只执行一次。就使用我上面定义的变量。
但是,我该在什么地方给他重新赋初值,让它重新复苏呢?当然是在登陆验证成功,转向首页 之间,重新给IsntPostBack赋初值:true;