zoukankan      html  css  js  c++  java
  • ASP.NET的Page_Load事件

    今天在做Datalist 中遍历复选框选中状态时,后台的代码获取checkbox的选中状态始终是false,研究了好久才发现跟
    Page_Load()事件有关。

    经过测试Page_Load事件执行的情况分为两种:
    第一种:页面第一次加载时执行。
    第二种:前台页面事件触发后 ,后台的Page_Load会在一次执行。
    1  protected void Page_Load(object sender, EventArgs e)
    2   { 
    3          dataList_win(page);//数据绑定函数
    4     }

    当页面第一次加载时Page_Load事件内部执行DataList数据绑定的函数,在页面点击按钮触发事件时在后台的代码会再一次执行Page_Load事件(数据绑定函数再一次执行),这样的话就算前台的复选框全都选中,进入后台时就会重新进行数据绑定,这样都就对前台的复选框选中状态重置,所以要在Page_Load()事件中对数据绑定的函数加上判断。

    1  protected void Page_Load(object sender, EventArgs e)
    2  {
    3  if (!Page.IsPostBack)//是否是页面第一次加载
    4         {
    5         wj_win(page);//第一次加载执行
    6         }
    7 }
    PS:后台进行数据绑定的函数在被调用的时候页面才会显示数据,所以在Page_Load事件内添加该函数,这样就会在页面加载时显示数据.
    无论何种情况都会执行Page_Load,这时就有必要判断一下服务器处理Page_Load事件时是在何种情况发生; 
    而Page.IsPostBack正好解决了这个问题; 
    当是第一种情况的时候(为了响应客户的请求)Page.IsPostBack返回false; 
    当是第二种情况的时候(把该页面回发到服务器给服务器处理时)Page.IsPostBack返回True; 
    !Page.IsPostBack 就是为了 防止服务端的加载重复绑定数据!
  • 相关阅读:
    python3.4下django集成使用xadmin后台
    在django中集成ckeditor富文本
    python多线程爬虫设计及实现示例
    利用python将mysql中的数据导入excel
    win7中python3.4下安装scrapy爬虫框架(亲测可用)
    windows下pycharm远程调试pyspark
    python连接impala(安装impyla)
    将百度坐标转换的javascript api官方示例改写成传统的回调函数形式
    csv导入数据到mysql
    windows下python连接oracle数据库
  • 原文地址:https://www.cnblogs.com/eason-chan/p/3638145.html
Copyright © 2011-2022 走看看