none
c#.net中如何判断page_load是由何引起的 RRS feed

  • 问题

  • 我想判断page_load(object sender,eventargs e)是点Button按钮时加载的还是点击浏览器上的刷新按钮或输“F5”时加载的,请各位高手帮帮忙,急用!
    • 已移动 孟宪会Moderator 2009年8月20日 12:49 (发件人:.NET Framework 一般性问题讨论区)
    2009年8月20日 11:02

答案

  • 您好,在page_load中用this.IsPostBack来判断,如果为true表示是通过Button加载,false则表示刷新加载.
    2009年8月20日 11:07
    版主
  • 你好,

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                //页面按钮提交的POST请求
            }
        }
    jon.valett@gmail.com
    2009年8月20日 11:21
    版主
  • 各位请教一下
    我对这方面有点模糊
       为什么写 if (Page.IsPostBack )  不加!呢
    2009年8月20日 11:36
  • 不管何种操作,f5或者Button.Click,都会执行Page_Load 的,只要页面执行,就会执行这个事件。
    Page对象有多个属性,来判断是何种操作

    IsAsync  ,
    IsCallback 
    IsCrossPagePostBack
    IsPostBack
    【孟子E章】
    2009年8月20日 12:56
    版主
  • !是否定的意思 

    Ispostback==true说明是本页面的按钮能产生的
    !Ispostback 表示不是本页面产生的事件  而是新打开的页面
    答案破千 马上就要到5星用户了 嘿嘿~~
    2009年8月21日 2:03
  • ISPostback是最简单的方式了
    我的博客,最近新写了一个Windows Mobile 6.5 Widget开发的文章,欢迎捧场
    尽力回答每一个问题,但不代表一定正确,希望初学者能够多自己尝试。。共勉。。:)
    2009年8月21日 3:14
    版主
  • private void page_load(object sender ,eventArgs  e){
                 if(!ispostback){

                            response.write("111111");
                 }
    }

    private void button_click(object sender ,eventArgs  e){
                      response.write("222222");
    }

    但我不想刚打开页面时或在地址栏上输入网址并按回车键时运行 response.write("111111");


    你好那你就用

    private void page_load(object sender ,eventArgs  e){
                 if(ispostback){

                            response.write("111111");
                 }
    }


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月21日 4:40
    版主

全部回复

  • 您好,在page_load中用this.IsPostBack来判断,如果为true表示是通过Button加载,false则表示刷新加载.
    2009年8月20日 11:07
    版主
  • 你好,

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Page.IsPostBack)
            {
                //页面按钮提交的POST请求
            }
        }
    jon.valett@gmail.com
    2009年8月20日 11:21
    版主
  • 各位请教一下
    我对这方面有点模糊
       为什么写 if (Page.IsPostBack )  不加!呢
    2009年8月20日 11:36
  • 不点击浏览器上的刷新按钮或输“F5”,第一次加载页面是也会调用if(!ispostback) 的啊!
    2009年8月20日 12:09
  • 您好,注意!号的使用,我把代码写清楚一些
    if( this.IsPostBack )
    {
        //按button按钮时执行这里
    }
    else
    {
       //第一次访问,执行这里
    }

    用!号
    if( !this.IsPostBack )
    {
       //第一次访问,执行这里
       }
    else
    {
        //按button按钮时执行这里

       }
    2009年8月20日 12:23
    版主
  • 我要实现的功能是打开页面后,如果点击button则进行操作1,如刷新页面则进行操作2,if(!this.ispostback)中的操作在刚打开页面时也会被调用的啊
    2009年8月20日 12:33
  • 是啊,第一次是会调用if(!this.ispostback)里的代码,不想调用就不放在这里。
    如觉得我没理解您的意思,可以把代码贴出。
    2009年8月20日 12:37
    版主
  • 我理解了!
    楼主的问题到底是什么 说清楚
    2009年8月20日 12:51
  • private void page_load(object sender ,eventArgs  e){
                 if(!ispostback){

                            response.write("111111");
                 }
    }

    private void button_click(object sender ,eventArgs  e){
                      response.write("222222");
    }

    但我不想刚打开页面时或在地址栏上输入网址并按回车键时运行 response.write("111111");

    2009年8月20日 12:53
  • 那您想在什么时候?
    2009年8月20日 12:56
    版主
  • 不管何种操作,f5或者Button.Click,都会执行Page_Load 的,只要页面执行,就会执行这个事件。
    Page对象有多个属性,来判断是何种操作

    IsAsync  ,
    IsCallback 
    IsCrossPagePostBack
    IsPostBack
    【孟子E章】
    2009年8月20日 12:56
    版主
  • private void page_load(object sender ,eventArgs  e){
                 if(!ispostback){

                            response.write("111111");
                 }
    }

    private void button_click(object sender ,eventArgs  e){
                      response.write("222222");
    }

    但我不想刚打开页面时或在地址栏上输入网址并按回车键时运行 response.write("111111");


    去掉!应该可以
    2009年8月20日 12:57
  • !是否定的意思 

    Ispostback==true说明是本页面的按钮能产生的
    !Ispostback 表示不是本页面产生的事件  而是新打开的页面
    答案破千 马上就要到5星用户了 嘿嘿~~
    2009年8月21日 2:03
  • ISPostback是最简单的方式了
    我的博客,最近新写了一个Windows Mobile 6.5 Widget开发的文章,欢迎捧场
    尽力回答每一个问题,但不代表一定正确,希望初学者能够多自己尝试。。共勉。。:)
    2009年8月21日 3:14
    版主
  • private void page_load(object sender ,eventArgs  e){
                 if(!ispostback){

                            response.write("111111");
                 }
    }

    private void button_click(object sender ,eventArgs  e){
                      response.write("222222");
    }

    但我不想刚打开页面时或在地址栏上输入网址并按回车键时运行 response.write("111111");


    你好那你就用

    private void page_load(object sender ,eventArgs  e){
                 if(ispostback){

                            response.write("111111");
                 }
    }


    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年8月21日 4:40
    版主
  • http://msdn.microsoft.com/zh-cn/library/ms178141%28v=vs.80%29.aspx
    2012年10月28日 3:21