用類的繼承關係實現簡易後臺代碼模板

来源:http://www.cnblogs.com/shouce/archive/2016/03/31/5339777.html
-Advertisement-
Play Games

Asp.net的優勢就在於快速構建應用,而對於一些最基礎數據的增刪改以及分頁事件或者樣式的設定可以通過在父類中寫上虛方法來供子類調用,如果子類需要在模板的基礎上衍生變化或者索性不要父類的方法的話,則只需要重寫父類的方法即可。 實驗代碼如下: 首先是模板類的抽象,繼承自Page類; 1 public ...


Asp.net的優勢就在於快速構建應用,而對於一些最基礎數據的增刪改以及分頁事件或者樣式的設定可以通過在父類中寫上虛方法來供子類調用,如果子類需要在模板的基礎上衍生變化或者索性不要父類的方法的話,則只需要重寫父類的方法即可。

實驗代碼如下:

首先是模板類的抽象,繼承自Page類;

複製代碼
 1     public class Template : System.Web.UI.Page
 2     {
 3 
 4         protected override void OnLoad(EventArgs e)
 5         {
 6             base.OnLoad(e);
 7 
 8             if (!IsPostBack)
 9             {
10                 DataRefresh();
11             }
12         }
13 
14         protected virtual void DataRefresh()
15         {
16         }
17 
18         protected virtual void grid_Init(object sender, EventArgs e)
19         {
20             var grid = sender as GridView;
21             grid.AllowPaging = true;
22             grid.PageSize = 10;
23             grid.PagerSettings.Mode = PagerButtons.NumericFirstLast;
24         }
25 
26         protected virtual void grid_PageIndexChanging(object sender, GridViewPageEventArgs e)
27         {
28             var grid = sender as GridView;
29             grid.PageIndex = e.NewPageIndex;
30             DataRefresh();
31         }
32     }
複製代碼

然後是一個繼承此模板類的具體實例;

複製代碼
 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Child.aspx.cs" Inherits="WebTest.Child" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12     <div>
13         <asp:GridView ID="grid" runat="server" OnInit="grid_Init" OnPageIndexChanging="grid_PageIndexChanging"></asp:GridView>
14     </div>
15     </form>
16 </body>
17 </html>
複製代碼

最後就是關鍵的後臺代碼實現,此處假設需要修改grid的每頁顯示數和分頁樣式;

複製代碼
 1 public partial class Child : Template
 2     {
 3 
 4         protected override void DataRefresh()
 5         {
 6             grid.DataSource = new LogDao().GetLogsByYearMonth("2012", "10");
 7             grid.DataBind();
 8         }
 9 
10         protected override void grid_Init(object sender, EventArgs e)
11         {
12             base.grid_Init(sender, e);
13 
14             grid.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast;
15             grid.PageSize = 15;
16         }
17 
18     }
複製代碼

以上僅是提供一種思路,如有錯誤望各網友批評指正。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • SCCM 部署操作系統 ,提示許可權問題,報錯:0xc00000098 這個問題通過查看日誌,論壇搜索,博客等。下麵是最終的解決方法: 1.檢查所有組件是否已安裝。(IIS組件等)。(分發站點證書是否正常) 2.在分發點將PEX鉤去掉。 3.卸載WDS重啟SCCM伺服器。 4.卸載管理組件。 5.卸載 ...
  • 自從甲骨文收購 MySQL 後,由於甲骨文對 MySQL 的開發和維護更多傾向於閉門的立場,很多 MySQL 的開發者和用戶放棄了它。在社區驅動下,促使更多人移到 MySQL 的另一個叫 MariaDB 的分支,在原有 MySQL 開發人員的帶領下,MariaDB 的開發遵循開源的理念,並確保它的二 ...
  • 之前的折騰過Windows下ssh的自動登錄,比如這篇Windows下使用Xshell建立反向隧道,但是這個不能無交互的情況下自動連接(比如在連接新主機時),也就很難在服務中使用。解決方法還是得使用命令行版本。 OpenSSH其實是有Windows版本的,並且目前還在維護:https://githu ...
  • 我們知道VMware的網路適配器類型有多種,例如E1000、VMXNET、VMXNET 2 (Enhanced)、VMXNET3等,就性能而言,一般VMXNET3要優於E1000,下麵介紹如果將Linux虛擬機的網路適配器類型從E1000改為VMXNET3。本文測試環境如下 操作系統 :Oracle... ...
  • 顯示層面頭文件 定義結構體,為顯示統一標準 int (*DeviceInit)(void); 顯示類驅動初始化 int (*ShowPixel)(int iPenX, int iPenY, unsigned int dwColor); 對某一點進行瞄色 int (*CleanScreen)(unsi... ...
  • 先寫一個完善的電子書框架,完善之前寫的功能拼接到一塊,實現多種文本文件格式打開解碼顯示, 多種字體顯示,設置文字大小,將以前混亂的程式按塊封裝 ...
  • 1、為什麼需要擴展方法 .NET3.5給我們提供了擴展方法的概念,它的功能是在不修改要添加類型的原有結構時,允許你為類或結構添加新方法。 思考:那麼究竟為什麼需要擴展方法呢,為什麼不直接修改原有類型呢? 首先,假設我們的項目中有一個類,後來過了一段時間,我們明確的知道需要為該類添加一個新功能,考慮這 ...
  • 說起那個無限級分類,相信很多人都知道是什麼東西,也曾經做過。我也相信,大家用得最多的實現方式就是做一個遞歸。 最近我也要做一個帶無限級分類的菜單,但是我又不想用遞歸來做,所以我需要用其他方式來實現,那就是迭代了。 首先,我需要定義一個實體模型,這舉一個省市無限級的例子: class Loaction ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...