封裝控制項 學習(1) C

2022-07-07 16:24:13 字數 2128 閱讀 6156

**:

在我們的專案開發中,由於asp.net的伺服器控制項功能有限,所以我們經常會自己定義特定的伺服器控制項,來滿足開發中特定的業務要求。可見知道如何開發asp.net伺服器控制項是非常有必要的。

其實簡單的實現asp.net伺服器控制項不是很難,以前園子中也有大牛介紹過相應的內容,這裡站在巨人的肩膀上也來分享下開發asp.net伺服器控制項的方法和自己的一些體會。寫給新手,高手繞過。

學習asp.net的伺服器控制項開發,個人認為最好的方式就是自己去實踐,當然理論知識也是很重要的,但是如果我們只是看理論的知識,可能會被裡面的一些概念鬧糊塗,看著看著就睡著了,如果自己動手創做出乙個自己的控制項,效果就不一樣了。

下面就通過例項建立乙個簡單的伺服器控制項:

首先我們建立乙個類庫工程selfwebcontrol。在同一解決方案中我們在建立乙個asp,net web應用程式(用來測試我們得控制項)

namespace

selfwebcontrol

}

我將controla類繼承control類,control類是.net中所有控制項的基類,其中包含了控制項共有的屬性和方法。

trackviewstate 導致跟蹤伺服器控制項的檢視狀態的更改,以便這些更改可以儲存到伺服器控制項的 statebag 物件中。通過 control.viewstate 屬性可訪問此物件。

這裡我們要重寫render方法,通過htmltextwriter 物件將控制項中的內容顯示出去。

namespace

selfwebcontrol }}

生成我們得selfwebcontrol工程,再切換到asp.net應用程式的工具箱時,vs2008會自動的將我們剛剛建立的controla新增到工具箱中,避免了我們以前通過選擇項新增控制項的過程。

這樣,我們就已最簡單的形式實現了乙個asp.net伺服器控制項。但是如果我想修改**的寬度,高度,背景色該怎麼改呢?

這就需要我們定義伺服器控制項的屬性。大家也都知道,asp.net的伺服器控制項有很多屬性,而我們現在的控制項只有公有的幾個屬性。

先來看看我們做了那些改動:

public

class controla:control//

control類中定義了所有asp.net伺服器控制項共享的屬性和方法

set

} [browsable(

true)]

[category(""

)] [defaultvalue(

100)]

[description(

"**高度")]

public

inttheight

set

} [browsable(

true)]

[category(""

)] [defaultvalue(

"bisque")]

[description(

"**背景顏色")]

public

string

bgcolor

set

} protected

override

void

render(htmltextwriter writer)

}

**很簡單,想必大家都能看懂,值得注意的就是對每乙個屬性的宣告。需要引用命名空間:using system.componentmodel;每乙個標籤的作用我已經在**中做了說明,這樣我們就為我們得控制項新增了屬性.

還要說明一點的就是,如果我們想在把控制項拖到頁面中時標籤內自動的新增一些屬性,需要新增下面的**:

[toolboxdata("

<:controla runat="server" bgcolor="red" theight="200" twidth="300">

")]

值得注意的是這裡的寫法,的冒號中之後的那個"controla「就是類的名字,不要寫錯。還有runat='sever'一定要寫。

是不是很簡單,這樣,我們只是封裝了簡單的html來完成asp.net控制項的製作。

小結:簡單的製作乙個asp.net的伺服器控制項很簡單,但是光只是通過html的輸出有的時候意義不大,這裡只是介紹一種方法和思路。開啟學習定製自己的asp.net控制項的第一扇門。在以後的文章中我會介紹針對於繼承webcontrol開發asp.net控制項。

學習筆記1 C 總結

溫故而知新,總結過去,展望未來!一 函式過載 c 中允許通過換名機制實現函式過載,函式過載是指在相同的作用域中,允許存在多個函式名相同的函式 存在條件 他們的引數個數 引數型別 引數排列必須不同,返回值型別不做要求 二 異常處理 所謂異常,就是程式執行到某乙個函式或者方法內部時候,出現了與程式涉及流...

C 封裝控制項 學習(4)

復合控制項 概念 所謂復合控制項 簡單的理解就是將多個基本的控制項組合成乙個控制項,從而實現自己想要的效果。微軟為asp.net2.0中推出的登入控制項等就是乙個復合控制項。從功能的實現上,複合式控制項有點像使用者控制項,只是乙個是.ascx檔案,乙個是.dll檔案。呈現簡單的復合控制項 要想呈現乙...

C 學習 1 C 的初步認識

學習 c 程式設計 第二版 譚浩強 主編 第一章 c 的初步認識 1.1 從c到c 1.2 最簡單的c 程式 1.3 c 程式的構成和書寫形式 1.4 c 程式的編寫和實現 1.5 關於c 上機實踐 1.1 從c到c 物件導向的程式設計 object oriented programming,oop...