zoukankan      html  css  js  c++  java
  • ASP.NET控件编写心得总结 以后会写详细一点

    编写ASP.NET控件一定要注意控件生命周期,特别是CreateChildControls()这个方法的执行期不确定,一不小心就会出错!总结来说,要注意以下几点:

    1. 子控件的生成时间是不确定的,换句话说,只有当需要创建子控件时,才会调用子控件的CreateChildControls()方法。
      比如事件触发时需要知道子控件的Id,以便事件下派,这时就需要创建子控件。
    2. 如果重载DataBind()方法,应在该方法中重新生成整个子控件树,这里特别注意应全部重新生成,如果控件在提交情况下显示异常,应检查在DataBind()中是否全部重新生成了子控件树。
      这是因为子控件的生成时间不确定,所有可能有部分生成,部分没有生成的情况,全部重新生成可以避免这种混乱。(混乱的一般表现是数据没有绑定上)
    3. 重载Render()方法中一般进行与数据无关也与操作无关的控件渲染工作,如加入样式表单,设置显示格式等等。
    4. 一点小技巧,视图状态一般用于需要绑定数据的控件,而这种控件是必须重载DataBind()方法,而DataBind()方法中重新生成整个控件树并加载数据。因此这种控件的CreateChildControls()方法中可以尽量少生成子控件,只创建事件触发需要的控件即可。(但应注意一点,为了保证控件ClientId的一致性,所有具有ClientId的控件都必须创建!)

    草草写了这些,这段时间很忙,等有时间时再详述。

  • 相关阅读:
    X ASM 磁盘大小限制
    X Oracle 12c Non CDB 数据库 切换成 CDB 测试
    X Scalable Sequences(自适应序列)
    X RMAN新特性- RMAN duplicate PDB into existing CDB
    X Oracle Database 19c中的自动索引
    X 12c中在 RMAN 中提供了表级别恢复 RECOVER TABLE
    X 12c中对于表分区维护的增强
    CF1019C Sergey's problem
    洛谷P6140&P2870 [USACO07NOV]Best Cow Line S
    CF471D MUH and Cube Walls
  • 原文地址:https://www.cnblogs.com/rrooyy/p/105865.html
Copyright © 2011-2022 走看看