• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

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

    發布: 2008-4-08 10:44 | 作者: 不詳 | 來源: 天極Yesky | 查看: 28次 | 進入軟件測試論壇討論

    領測軟件測試網 在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);
      }

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    21/212>

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>