用类的继承关系(重写父类的方法)实现简易后台代码模板

Asp.net的优势就在于快速构建应用,而对于一些最基础数据的增删改以及分页事件或者样式的设定可以通过在父类中写上虚方法来供子类调用,如果子类需要在模板的基础上衍生变化或者索性不要父类的方法的话,则只需要重写父类的方法即可。

实验代码如下
首先是模板类的抽象,继承自Page类;


代码如下:

public class Template : System.Web.UI.Page
{
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (!IsPostBack)
{
DataRefresh();
}
}
protected virtual void DataRefresh()
{
}
protected virtual void grid_Init(object sender, EventArgs e)
{
var grid = sender as GridView;
grid.AllowPaging = true;
grid.PageSize = 10;
grid.PagerSettings.Mode = PagerButtons.NumericFirstLast;
}
protected virtual void grid_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
var grid = sender as GridView;
grid.PageIndex = e.NewPageIndex;
DataRefresh();
}
}

然后是一个继承此模板类的具体实例


代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Child.aspx.cs" Inherits="WebTest.Child" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="grid" runat="server" OnInit="grid_Init" OnPageIndexChanging="grid_PageIndexChanging"></asp:GridView>
</div>
</form>
</body>
</html>

最后就是关键的后台代码实现,此处假设需要修改grid的每页显示数和分页样式;


代码如下:

public partial class Child : Template
{
protected override void DataRefresh()
{
grid.DataSource = new LogDao().GetLogsByYearMonth("2012", "10");
grid.DataBind();
}
protected override void grid_Init(object sender, EventArgs e)
{
base.grid_Init(sender, e);
grid.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast;
grid.PageSize = 15;
}
}

以上仅是提供一种思路,如有错误望各网友批评指正。

(0)

相关推荐

  • 给Asp.Net初学者的关于继承和多态性的例子

    本人学Asp.Net不久,用的是C#写代码,在学习C#中发现很多初学者对继承和多态性不是特别的了解,因此作了这个例子,希望对您有所帮助,例子很简单 页面文件TestProfileClass2.aspx<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" Src="profile2.cs" %><%@ Import Na

  • asp.net 用继承方法实现页面判断session

    新建一个类 Csharp 代码 复制代码 代码如下: using System; using System.Web; using System.Web.UI; using System.Web.SessionState; public class mana_session : Page { public mana_session() { } protected override void OnInit(EventArgs e) { if (Session["uid"]== null |

  • asp.net 继承自Page实现统一页面验证与错误处理

    复制代码 代码如下: isAdmin(); 因为当时没有用母版页去做,所以不能在母版页中统一判断权限,而当时我限于自己水平,也没有采用继承自Page这个类的方法去统一处理一些页面加载的时候都要处理的事情.现在根据"李天平(动软)"的一些代码记录下,也希望大家要学会使用继承啊! 看下一个简单的继承自Page的PageBase: 复制代码 代码如下: using System; using System.Data; using System.Configuration; using Sys

  • 用类的继承关系(重写父类的方法)实现简易后台代码模板

    Asp.net的优势就在于快速构建应用,而对于一些最基础数据的增删改以及分页事件或者样式的设定可以通过在父类中写上虚方法来供子类调用,如果子类需要在模板的基础上衍生变化或者索性不要父类的方法的话,则只需要重写父类的方法即可. 实验代码如下: 首先是模板类的抽象,继承自Page类: 复制代码 代码如下: public class Template : System.Web.UI.Page { protected override void OnLoad(EventArgs e) { base.On

  • 使用IntelliJ IDEA查看类的继承关系图形(图文详解)

    最近正好也没什么可忙的,就回过头来鼓捣过去的知识点,到Servlet部分时,以前学习的时候硬是把从上到下的继承关系和接口实现记得乱七八糟. 这次利用了IDEA的diagram,结果一目了然,也是好用到炸裂,就此分享. 1.查看图形形式的继承链 在你想查看的类的标签页内,点击 右键,选择 Diagrams ,其中有 show 和 show ... Popup,只是前者新建在标签页内,后者以浮窗的形式展示: 实际上,你也可以从左边的项目目录树中,对你想查看的类点击右键,同样选择Diagrams,效果

  • 在JavaScript中模拟类(class)及类的继承关系

    Javascipt语法不支持"类"(class)[es6已经支持],但是有模拟类的方法.今天我主要谈谈Javascipt中模拟"类"的方法及js中继承的总结和回顾. js中实现"类"与继承,既是重点,又是难点.很多同学可能都对js中"类"与继承都有所了解,但是深入剖析的时候,感觉力不从心.模棱两可. 我们先来总结一下js定义"类"的几种方法: 方法一:构造函数法 这个方法是比较经典的方法,我们会经常见到.生

  • IntelliJ IDEA中查看当前类的所有继承关系图

    在IntelliJ IDEA 中这个查看一个类也就是当前类的所有继承关系,包括实现的所有的接口和继承的类, 这个继承,不仅仅是一级的继承关系,包括好几层的继承.父类的父类的父类.直到最后. 可以很清楚明了的了解一个类的实现关系. diagram 英[ˈdaɪəgræm] 美[ˈdaɪəˌɡræm] n. 图表; 示意图; 图解; [数] 线图; vt. 图解; 用图表示; 下面看这个编辑器怎么以图解的形式,查看这种继承关系. (上面的是查看的Java源码的类的所有继承关系,最下面的这个是在查看s

  • java Person,Student,GoodStudent 三个类的继承、构造函数的执行

    有这样三个类,Person,Student,GoodStudent.其中Student继承了Person,GoodStudent继承了Student,三个类中只有默认的构造函数,用什么样的方法证明在创建Student类的对象的时候是否调用了Person的构造函数,在创建GoodStudent类的对象的时候是否调用了Student构造函数?如果在创建Student对象的时候没有调用Person的构造函数(我也不知道什么情况下不会去调用,如果都是默认无参构造函数的话),那么采用什么样的手段可以调用父

  • Python 的类、继承和多态详解

    类的定义 假如要定义一个类 Point,表示二维的坐标点: # point.py class Point: def __init__(self, x=0, y=0): self.x, self.y = x, y 最最基本的就是 __init__ 方法,相当于 C++ / Java 的构造函数.带双下划线 __ 的方法都是特殊方法,除了 __init__ 还有很多,后面会有介绍. 参数 self 相当于 C++ 的 this,表示当前实例,所有方法都有这个参数,但是调用时并不需要指定. >>&g

  • Java类的继承实例详解(动力节点Java学院整理)

    一.你了解类吗? 在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的). 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初始化: 1)对于  char.short.byte.int.long.float.double等基本数据类型的

  • java中重写父类方法加不加@Override详解

    java重写父类方法加不加@Override 这个是我在刚学习java时遇到的问题,希望能给像我一样的新手学习时带来帮助,如有错误请指正,谢谢! class Father{ public String name; public int age; public Father(){ } public void work(){ System.out.println("盖房子"); } } class Son extends Father{ public int weight; public

  • Java十分钟精通类 封装 继承

    目录 什么是类成员 什么是实例变量 那么实例变量和类变量的区别呢? 那么类方法和实例方法的区别? static关键字 static成员方法: static用处: 封装: 封装的概念 封装的分类 封装的使用 继承: 什么是继承 继承的使用: 方法重写的规则: super关键字: 什么是类成员 使用static修饰的成员方法和成员变量称为类成员 使用static修饰的成员变量叫做类变量 使用static修饰的成员方法叫做类方法 什么是实例变量 未使用static修饰的成员方法和成员变量称为实例成员

  • Java超详细分析继承与重写的特点

    概念:继承是面向对象语法三大特征之一,继承可以降低代码的沉余度,提高编程的效率.通过继承子类可以随意调用父类中的某些属性与方法,一个子类只能继承一个父类,一个父类可以被多个子类继承.它就好比与我们显示生活中孩子继承父亲的财产.重写的好处在于子类可以根据需要,定义特定于自己的行为. 也就是说子类能够根据需要实现父类的方法,就好比金毛与哈士奇他的特征都是来自狗,仓鼠与松鼠他们他们的特征来自老鼠,而他们身上的不同属于基因突变就相当于重写 继承的特点: 1):java中只支持单根继承,即一个类只能有一个

随机推荐