在網站項目中添加“模組”

來源:互聯網
上載者:User

        遇到的問題:

        這段時間在合作開發一個項目,這個項目是經典三層架構的,在U層我們使用的是網站而非項目,而B層和D層使用的是項目。(這裡解釋一下,這裡的項目並非我們整個系統,而是在建立的時候選擇的項目和網站,下同。)

        我們在傳統的項目,經常用到模組,那麼我們抽象出來的模組就可以更好複用,這是物件導向中大家都明白的道理。

        瞭解了我們這個問題的背景,下面我來說說這個問題:

        在設計過程中,我發現很多地方都要把查到的資料繫結到dropdownlist中。這時我就想能不能把這個綁定的過程抽象出來,抽象成一個方法,這樣將來在需要修改的時候我只需要修改我的方法就行,而不是去找那麼多的地方一個個修改。

        說到這裡,我突然想到,前些天米老師在一次項目驗收時,給我們講的關於物件導向的問題。米老師說,其實我們還沒有真正明白什麼是物件導向,沒有體會到物件導向的好處。真正的物件導向不是把寫好的代碼或者某個編譯好的類到處用,而應該是一種引用而非複製。類改了,那麼引用這個類的所有的地方都會跟著改。物件導向使得我們沒有必要一個個單獨去改他們。

         其實這個方法很簡單,很容易實現。今天之所以拿出來說它,主要是想說說如何在一個網站項目中使用這樣的方法。

         我們大家都知道,要想讓其他類都能使用這個方法,我們需要把這個方法放到一個類中。而物件導向的思想要求我們,對象只能擁有屬於它的屬性。而通常我們是把這個方法放到一個單獨的模組中。但是當我嘗試這樣做的時候,卻不能在一個網站項目中建立這樣一個模組。

         對於這樣一個問題,我是這樣解決的:

         在網站中建立一個類,這個類會被自動放入到App_Code檔案夾中。然後在這個類中建立一個靜態方法,這樣我們在U層的類中就可以直接調用這個方法啦!

using System;using System.Collections.Generic;using System.Linq;using System.Web;
//引入需要的類using System.Web.UI.WebControls;//因為我傳入的是一個控制項,這個方法要對控制項進行操作,所以引入該命名空間using System.Data;/// <summary>///將查到的資料繫結的下拉式清單/// </summary>public class BindingDrop{public BindingDrop(){////TODO: 在此處添加建構函式邏輯//}    /// <summary>    /// 將查到的資料繫結的下拉式清單    /// </summary>    /// <param name="obj">要綁定的控制項</param>    /// <param name="dt">來源資料表</param>    /// <param name="textField">顯示的欄位--字串型</param>    /// <param name="valueField">綁定的欄位--字串型</param>    public static void bindDrop(DropDownList obj, DataTable dt, string textField, string valueField) //靜態方法    {        //綁定資料        obj.DataSource = dt;        //指定顯示欄位        obj.DataTextField = textField;        //指定綁定值        obj.DataValueField = valueField;        obj.DataBind();        //插入 請選擇 項        obj.Items.Insert(0, new ListItem("--請選擇--", ""));    }}

         這樣就可是實現和模組功能一樣的一個類,在介面層需要的地方直接使用類名調用該靜態方法即可。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.