程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET中基類頁的設計和使用

ASP.NET中基類頁的設計和使用

編輯:關於ASP.NET

在Asp.net業務系統的開發過程中,為了保證頁面風格的一致性以及減少重復代碼的編寫,我們需要引入基類頁的概念,即:定義一個基類頁,讓所有的頁面都繼承這個基類,並在該基類頁中加入公用的屬性和方法。

實際使用時,按照功能頁面劃分,可以定義多個基類頁,如:

class FormBase
class BizFormBase :FormBase
class ViewFormBase : BizFormBase
class EditFormBase : BizFormBase
class QueryFormBase : FormBase

FormBase:基類頁中的根,提供與業務無關的服務,如:URL重寫,日志等。

BizFormBase:加入和業務相關的屬性,如:該頁面的當前業務對象ID等。

ViewFormBase,:EditFormBase:實現具體的查看,編輯功能。

QueryFormBase:實現對通用查詢頁面的封裝。

從面向對象的角度看,基類頁與普通的基類,繼承類設計其實區別並不大,都要在基類中編寫公用的屬性方法,並通過虛函數、事件等方式讓繼承類重寫或響應。所不同的是基類頁的設計過程受到所在環境的約束。在WinForm環境下,我們可以預先定義好窗體的公用元素,如工具條,默認的表格以及DataSource控件等。而到了Asp.net下的WebForm,則無法實現界面一級的繼承,同時加入了狀態管理等要求。

為了幫助大家理解,我們以查詢基類頁的設計過程來分析:

一個最簡單的查詢頁面會包括三部分,多個查詢條件文本框,查詢按鈕,以及表格。同時查詢頁會和一個數據訪問組件關聯,當點查詢時,會把查詢條件轉成where語句提交給數據訪問組件。

QueryPeopleForm
OnQueryButtonClick()
{
  string peopleName = txtPeopleName.Text;
  string peopleAge = txtPeopleAge.Text;
  string sql;
  sql = string.Format(“Name Like‘%{0}%’and Age = {1}, PeopleName, peopleAge);
  PeopleManager manager = new PeopleManager();
  this.gridMain.DataSource = manager.GetDataTable(sql);
  this.gridMain.DataBind();
}

當點擊查詢按鈕時,我們做了以下三件事:

1、獲取查詢條件

2、提交查詢

3、將查詢結果綁定到表格

這兒的提交查詢和綁定在不同的查詢頁面都是一樣的,於是我們首先把2,3放到基類頁中,並提供這樣一個方法:void QueryAndBind(IManager manager, string sql);這兒要定義IManager接口,讓所有的Manager都實現該接口,這樣基類頁就無需知道具體的Manager,只要調用IManager.GetDataTable方法,然後綁定表格到即可。

使用基類頁後的代碼:

QueryPeopleForm : QueryFormBase
OnQueryButtonClick()
{
  string peopleName = txtPeopleName.Text;
  string peopleAge = txtPeopleAge.Text;
  sql = string.Format(“Name Like‘%{0}%’and Age = {1}, PeopleName, peopleAge);
  QueryAndBind(new PeopleManager(), sql);
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved