学了一段时间ASP.NET,虽然平时一直都是!Page.IsPostBack,
大致也明白这个东西的意思。
写了个程序,想让用户首次点击一个网页时对这网页动态显示的商品的点击数加一,然后写回数据库中,
我写在Page_Load中,而且写在if(!Page.IsPostBack){...........}里,可当我返回别的网页,再次点击这商品,或者我在IE中回退然后进入,还是加1,这是撒原因?
后来做了试验,在一个工程中放两个网页,第二个的PageLoad里写了这么段话,
if(!Page.IsPostBack)
{
   Response.Write("First load!");
}
然后在两个网页里加链接,相互链接到对方,但是每次点击到第二个网页时,First load这句话总是显示的。
实在弄不明白,郁闷中!

解决方案 »

  1.   

    转:
    Page.IsPostBack 是用来检查目前网页是否为第一次加载,当使用者第一次浏览这个网页时Page.IsPostBack 会传回False,不是第一次浏览这个网页时就传回True;所以当我们在Page_Load 事件中就可以使用这个属性来避免做一些重复的动作。下列范例利用Page.IsPostBack 属性来判断网页是不是第一次载入: 
    <Html>
    <ASP:Label Id="lblA" Runat="Server"/>
    <Form Id="Form1" Runat="Server">
    <ASP:Button Id="btnA" Runat="Server" Text="请按我"
    OnClick="btnA_Click"/>
    </Form>
    <Script Language="VB" Runat="Server">
    Sub Page_Load(Sender As Object,e As Eventargs)
    If Page.IsPostBack Then
    lblA.Text="网页不是第一次载入"
    Else
    lblA.Text="网页是第一次载入"
    End If
    End Sub 
    Sub btnA_Click(Sender As Object,e As Eventargs)
    Response.Write("您按了按钮")
    End Sub
    </Script>
    </Html>
      

  2.   

    是不是这样:
        在本网页点击了什么重新加载后,Page.IsPostBack=false,
        而在本网页上点击了链接到其他网页的链接,再返回到本网页,Page.IsPostBack=true,
        我试下来好像就是这样的,在两个网页之间来回链接,每个网页每次加载时,显示的总是
        !Page.IsPostBack(){}里的代码,说明这时服务器把这个网页表示为首次执行,
        是这样吗?
        郁闷中~~~!
      

  3.   

    !Page.IsPostBack(){}里的代码是只让网页在首次加载时执行。如有的下拉框,如果你不这样做的话,你每选一次,网页刷新一次,下拉框重新加载,你以前的选择就不会出现在文本框中了,而是每次的默认选项
      

  4.   

    是这样的,你如果从A页点到B页,B页肯定执行!Page.IsPostBack()中的代码.如由B页中的链接点回到B,则Page.IsPostBack==true;