通常信息发布与修改表单基本类似,一般情况下都会把两张表单做在一个页面,这样在页面上添加两个按钮,一个是新增一个是修改,根据传入的参数包含有效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类型的,以便子页面重写