控制項之美

來源:互聯網
上載者:User
控制項 編程過程中總會有些重複的東西,如果到處拷貝,既不容易維護,結構也很不清晰,這時候就可以把他們提取出來,根據其共性,架構屬於自己的庫,因為一直從事asp.net方面的開發,就結合實際情況,用vb.net舉個例子。 asp.net方面的開發,就結合實際情況,用vb.net舉個例子。

      在做進銷存等軟體的時候,經常會用到倉庫、部門、類別等基礎資料,而且這些東西會反覆用到,最常使用的是使用DropDownList控制項,如果還沒有選定,就列出所有的資訊,如果開啟已有記錄,就顯示已選定的資訊,功能很簡單,就舉個倉庫的例子。

常用的代碼如下,因為是個例子,異常處理就省略了:

(new store).GetData 返還的是個DataTable,裡面有主鍵”StoreID”,名稱”StoreName”欄位

Protected WithEvents DropStore As System.Web.UI.WebControls.DropDownList

‘綁定倉庫DropDownList列表

‘如果StoreID=0,則選擇內容為“”,否則選定該倉庫

Private Sub BindStore(Optional ByVal StoreID As Integer = 0)

        DropStore.DataSource = (New Store).GetData

        dropstore.DataValueField=”StoreID”

        dropstore.DataTextField =”StoreName”

        DropStore.DataBind()

        Dim listitem As ListItem = New ListItem("", "0")

        dropclass.Items.Add(listitem)

        If StoreID=0 Then

              dropstore.SelectedIndex = dropstore.Items.Count – 1

        Else

              dropstore.Items.FindByValue(StoreID).Selected = True            

        End if

End Sub 這段代碼放在需要選擇、顯示倉庫的地方,確實能用,但是如果使用倉庫的頁面很多,這段代碼就需要到處拷貝,既不方便,維護也很不方便,想象一下假如以後需要對倉位管理,DropDownList需要按層次顯示庫存的情況,那時就需要找到所有使用這段代碼的部分,進行修改。       重複的代碼統一管理,這是現在編程的基本要求,從可重用性出發,如果把這個部分做成一個控制項,在介面上拖拖拉拉,簡單設幾個屬性就達到了目的,確實是個不錯的想法,想到就要做到,下面我們就把它實現。       建立一個項目,項目名稱是JxcControls,類型為類庫,添加一個檔案,檔案類型是自訂控制項,名稱StoreDropDownList,開啟這個檔案,我們可以發現編譯器已經協助我們做了很多東西了,不過這些東西的協助不大,我們還需要做很多工作,把預設內容改為下面:

    

Imports System.ComponentModel

Imports System.Web.UI

‘把WebControl改為DropDownList

<ToolboxData("<{0}:StoreDropDownList runat=server></{0}:StoreDropDownList>")> Public Class StoreDropDownList

    Inherits System.Web.UI.WebControls.DropDownList

    

    Dim _StoreId As String

    

‘唯讀屬性

    <Bindable(True), Category("Appearance"), DefaultValue("")> ReadOnly Property StoreName



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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