用類的繼承關系(重寫父類的方法)實現(xiàn)簡易后臺代碼模板
更新時間:2013年01月23日 10:33:48 作者:
Asp.net的優(yōu)勢就在于快速構建應用,而對于一些最基礎數(shù)據(jù)的增刪改以及分頁事件或者樣式的設定可以通過在父類中寫上虛方法來供子類調用,接下來將為您測試一下用子類重寫父類的方法實現(xiàn)在模板的基礎上衍生變化
Asp.net的優(yōu)勢就在于快速構建應用,而對于一些最基礎數(shù)據(jù)的增刪改以及分頁事件或者樣式的設定可以通過在父類中寫上虛方法來供子類調用,如果子類需要在模板的基礎上衍生變化或者索性不要父類的方法的話,則只需要重寫父類的方法即可。
實驗代碼如下:
首先是模板類的抽象,繼承自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>
最后就是關鍵的后臺代碼實現(xiàn),此處假設需要修改grid的每頁顯示數(shù)和分頁樣式;
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;
}
}
以上僅是提供一種思路,如有錯誤望各網(wǎng)友批評指正。
實驗代碼如下:
首先是模板類的抽象,繼承自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>
最后就是關鍵的后臺代碼實現(xiàn),此處假設需要修改grid的每頁顯示數(shù)和分頁樣式;
復制代碼 代碼如下:
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;
}
}
以上僅是提供一種思路,如有錯誤望各網(wǎng)友批評指正。
相關文章
詳解ASP.NET Core 之 Identity 入門(三)
本篇文章主要介紹了ASP.NET Core 之 Identity 入門,主要負責對用戶的身份進行認證,有興趣的可以了解一下。2016-12-12
WCF如何綁定netTcpBinding寄宿到控制臺應用程序詳解
這篇文章主要給大家介紹了關于WCF如何綁定netTcpBinding寄宿到控制臺應用程序的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用WCF具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-07-07
HTML服務器控件和WEB服務器控件的區(qū)別和聯(lián)系介紹
學習asp.net的時候一會用Html服務器控件,一會用Web服務器控件,起初做起例子來也挺迷糊的,下面對這兩個控件研究了一下做個筆記在此與大家分享下,感興趣的朋友可以了解下2013-08-08
asp.net Repeater取得CheckBox選中的某行某個值
Repeater取得CheckBox選中的某行某個值的實現(xiàn)代碼2008-07-07
.NET調用控制臺下生成的exe文件,傳參及獲取返回參數(shù)的思路及代碼
.NET調用控制臺下生成的exe文件,傳參及獲取返回參數(shù)的思路及代碼,需要的朋友可以參考一下2013-06-06
ASP.NET MVC重寫RazorViewEngine實現(xiàn)多主題切換
這篇文章主要為大家詳細介紹了ASP.NET MVC重寫RazorViewEngine實現(xiàn)多主題切換,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06

