Asp.net的優(yōu)勢就在于快速構(gòu)建應(yīng)用,而對于一些最基礎(chǔ)數(shù)據(jù)的增刪改以及分頁事件或者樣式的設(shè)定可以通過在父類中寫上虛方法來供子類調(diào)用,如果子類需要在模板的基礎(chǔ)上衍生變化或者索性不要父類的方法的話,則只需要重寫父類的方法即可。
實驗代碼如下:
首先是模板類的抽象,繼承自Page類;
復(fù)制代碼 代碼如下:
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();
}
}
然后是一個繼承此模板類的具體實例;
復(fù)制代碼 代碼如下:
%@ 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>
最后就是關(guān)鍵的后臺代碼實現(xiàn),此處假設(shè)需要修改grid的每頁顯示數(shù)和分頁樣式;
復(fù)制代碼 代碼如下:
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 用繼承方法實現(xiàn)頁面判斷session
- asp.net 繼承自Page實現(xiàn)統(tǒng)一頁面驗證與錯誤處理
- 給Asp.Net初學者的關(guān)于繼承和多態(tài)性的例子