熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

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

2013-11-13 11:05:15  來源: .NET編程 

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

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

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

  FormBase基類頁中的根提供與業務無關的服務URL重寫日志等
  BizFormBase加入和業務相關的屬性該頁面的當前業務對象ID等
  ViewFormBaseEditFormBase實現具體的查看編輯功能
  QueryFormBase實現對通用查詢頁面的封裝

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

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

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

  QueryPeopleForm
  OnQueryButtonClick()
  {
   string peopleName = txtPeopleNameText;
   string peopleAge = txtPeopleAgeText;

   string sql;
   sql = stringFormat(Name Like%{}%and Age = {} PeopleName   peopleAge);

   PeopleManager manager = new PeopleManager();
   thisgridMainDataSource = managerGetDataTable(sql);
   thisgridMainDataBind();
  }

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

  獲取查詢條件
  提交查詢
  將查詢結果綁定到表格

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

  使用基類頁後的代碼

  QueryPeopleForm : QueryFormBase
  OnQueryButtonClick()
  {
    string peopleName = txtPeopleNameText;
   string peopleAge = txtPeopleAgeText;
   sql = stringFormat(Name Like%{}%and Age = {} PeopleName peopleAge);
   QueryAndBind(new PeopleManager() sql);
  }

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/15132.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.