• 基于页面继承的代码重构



       通常信息发布与修改表单基本类似,一般情况下都会把两张表单做在一个页面,这样在页面上添加两个按钮,一个是新增一个是修改,根据传入的参数包含有效Id(主键)来确定是添加还是修改,不过手上要做的表单稍有点复杂,添加跟修改布局不同,同时用户后台跟管理员使用表单也略有不同,为了避免大量重复代码决定采用页面继承方式来实现这4个表单.
    首先页面中设置 Inherits属性<%@ Page Language="C#" EnableViewState="true" Inherits="BaseProductEidt" %>
     第一个问题是Page_Load事件
     如果在Base页中重写OnLoad方法,那么务必凋用base.OnLoad以触发字页面上定义的Page_Load事件
     //注意根据需要调用base.OnLoad(e) ,下面代码中是先完成初始化操作再执行子页面上的Page_Load过程.
        protected override void OnLoad(EventArgs e)
        {
            Response.Expires = -1;
            //先执行初始化操作
            if (!IsPostBack)
            {
                InitView();
                PreUpdate();
            }
            //执行页面上的Page_Load处理过程
            //OnLoad过程任务是触发(调用)绑顶的Page_Load过程
            base.OnLoad(e);
        }

     问题二访问子页面的控件
    有如果帮助方法
        protected T Ctl<T>(string id)
            where T : class
        {
            T ctl = this.Form.FindControl(id) as T;
            return ctl;
        }
    使用: Ctl<TextBox>("txtUrl").Text="http://www.wow52.cn/";

    最后,将各页面需要区别处理的方法定义成virtual类型的,以便子页面重写

  • 相关阅读:
    botzone Tetris2
    NOIP2017游记
    城乡联谊胡策会糊厕R3
    SRM 20
    AtCoder Regular Contest 082
    AtCoder Grand Contest 019
    复数模版
    SRM13
    NOI2017&&codeM2017游记
    java多线程编程
  • 原文地址:https://www.cnblogs.com/wdfrog/p/1582463.html
Copyright © 2020-2023  润新知