WEB案例開發(fā)用戶控件和自定義控件課件_第1頁
WEB案例開發(fā)用戶控件和自定義控件課件_第2頁
WEB案例開發(fā)用戶控件和自定義控件課件_第3頁
WEB案例開發(fā)用戶控件和自定義控件課件_第4頁
WEB案例開發(fā)用戶控件和自定義控件課件_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

用戶控件和自定義控件學(xué)習(xí)目的與要求除在ASP.NET網(wǎng)頁中使用Web服務(wù)器控件外,還可以使用用于創(chuàng)建ASP.NET網(wǎng)頁的相同技術(shù)創(chuàng)建可重復(fù)使用的自定義控件,這些控件稱作用戶控件。本章主要內(nèi)容用戶控件:包括什么是用戶控件和如何創(chuàng)建用戶控件。將Web窗體轉(zhuǎn)換成用戶控件。自定義控件的開發(fā)。用戶控件和自定義控件的異同。1用戶控件用戶控件是一種復(fù)合控件,工作原理非常類似于ASP.NET網(wǎng)頁??梢韵蛴脩艨丶砑蝇F(xiàn)有的Web服務(wù)器控件和標(biāo)記,并定義控件的屬性和方法。然后可以將控件嵌入ASP.NET網(wǎng)頁中充當(dāng)一個單元。1.1用戶控件概述用戶控件使開發(fā)人員能夠根據(jù)應(yīng)用程序的需求,方便的定義和編寫控件。開發(fā)所使用的編程技術(shù)將與編寫Web窗體的技術(shù)相同,只要開發(fā)人員對控件進行修改,就可以將使用該控件的頁面的所有控件都進行更改。1.1用戶控件概述用戶控件與ASP.NET網(wǎng)頁有以下區(qū)別:(1)用戶控件的文件擴展名為.ascx。(2)用戶控件中沒有@Page指令,而是包含@Control指令,該指令對配置及其他屬性進行定義。(3)用戶控件不能作為獨立文件運行。而必須像處理任何控件一樣,將它們添加到ASP.NET頁中。(4)用戶控件中沒有html、body或form元素。這些元素必須位于宿主頁中。1.2將Web窗體頁轉(zhuǎn)換為用戶控件1.將單文件ASP.NET網(wǎng)頁轉(zhuǎn)換為用戶控件將單文件ASP.NET網(wǎng)頁轉(zhuǎn)換為用戶控件的步驟如下:(1)重命名控件使其文件擴展名為.ascx。(2)從該頁面中移除html、body、head

和form元素。(3)將@

Page指令更改為@

Control指令。(4)移除@

Control指令中除Language、AutoEventWireup(如果存在)、CodeFile和Inherits之外的所有特性。(5)在@

Control指令中包含className特性。這允許將用戶控件添加到頁面時對其進行強類型化。1.2將Web窗體頁轉(zhuǎn)換為用戶控件2.將代碼隱藏ASP.NET網(wǎng)頁轉(zhuǎn)換為用戶控件將代碼隱藏ASP.NET網(wǎng)頁轉(zhuǎn)換為用戶控件的步驟如下:(1)重命名.aspx文件,使其文件擴展名為.ascx。(2)根據(jù)代碼隱藏文件使用的編程語言,重命名代碼隱藏文件使其文件擴展名為.ascx.vb或.ascx.cs。(3)打開代碼隱藏文件并將該文件繼承的類從Page

更改為UserControl。(4)針對每個.aspx文件,按照將單文件ASP.NET網(wǎng)頁轉(zhuǎn)換為用戶控件的步驟操作。(5)在@

Control指令中包含className特性。這允許將用戶控件添加到頁面時對其進行強類型化。1.2將Web窗體頁轉(zhuǎn)換為用戶控件3.將Web窗體轉(zhuǎn)換成用戶控件首先,需要刪除<body>、<html>、<head>等標(biāo)記。對于Web窗體,其標(biāo)記方式的代碼參見webPage.aspx頁面文件。而對于用戶控件,聲明代碼參見webPageUserControl.ascx文件。1.3用戶控件的開發(fā)1.建立用戶控件在VisualStudio2008中,首先打開或新建一個網(wǎng)站項目,新建用戶控件。1.3用戶控件的開發(fā)用戶控件創(chuàng)建完畢后,會生成一個WebUserControl1.ascx頁面,然后它將在設(shè)計器中打開。用戶控件創(chuàng)建完成后,.ascx頁面的代碼如下所示。<%@ControlLanguage="C#"AutoEventWireup="true"CodeBehind="WebUserControl1.ascx.cs"Inherits="WebApp7_1.WebUserControl1"%>1.3用戶控件的開發(fā)2.完善用戶控件ASP.NET用戶控件能夠封裝一個單元中多個子控件的功能。用戶控件由一個或多個ASP.NET服務(wù)器控件(Button控件、TextBox控件等)以及控件執(zhí)行功能所需的任何代碼組成。用戶控件還可以包括自定義屬性或方法,這些屬性或方法向容器(通常為ASP.NET頁)顯示用戶控件的功能。用戶控件實例編寫一個用戶登錄控件2自定義控件用戶控件能夠執(zhí)行很多操作。并實現(xiàn)一些功能,但是在復(fù)雜的環(huán)境下,用戶控件并不能夠達到開發(fā)人員的要求,是因為用戶控件大部分都是使用現(xiàn)有的控件進行組裝,編寫事件來達到目的。于是,ASP.NET允許開發(fā)人員編寫自定義控件實現(xiàn)復(fù)雜的功能。2.1簡單的自定義控件自定義控件是編寫的一個類,此類從Control或WebControl派生。Control類提供了將其放在Page類的控件樹中的基本功能。自定義控件需要定義一個直接或間接從Control類派生的類,并重寫Render方法。WebControl類將功能添加到基本的控件類,用于在客戶端計算機上顯示可視的內(nèi)容。例如可以使用WebControl類以控制外觀和樣式通過諸如字體、顏色和高度等屬性。簡單自定義控件實例首先,需要創(chuàng)建一個自定義控件ServerControl1。簡單自定義控件實例自定義控件創(chuàng)建完成后,會自動生成一個類和相應(yīng)的方法,用戶能夠在源代碼中編寫屬性,示例代碼如下所示。privateintnoOfTimes;publicintNoOfTimes//編寫屬性{get{returnthis.noOfTimes;}//獲取屬性

set{this.noOfTimes=value;}//設(shè)置屬性}簡單自定義控件實例然后,開發(fā)人員可以在源代碼中編寫和添加屬性。當(dāng)需要呈現(xiàn)給HTML頁面輸出時,只需要重寫Render方法即可。接著,需要將自定義控件編譯成DLL文件。還需要打開現(xiàn)有的或創(chuàng)建一個新的ASP.NETWeb應(yīng)用程序項目。在該webApp7-2項目中添加自定義控件的引用。單擊【確定】按鈕完成引用的添加后,就可以在頁面中使用此自定義控件。若需要在頁面中需要使用此自定義控件,同樣與用戶控件一樣需要在頭部聲明自定義控件,示例代碼如下所示。<%@RegisterTagPrefix="MyControl"Namespace="ServerControl1"Assembly="ServerControl1"%>簡單自定義控件實例自定義注冊完畢后,在工具欄中也會呈現(xiàn)自定義控件,如圖7-11所示。就可以直接拖動自定義控件到頁面,并且配置相應(yīng)的屬性簡單自定義控件實例用戶拖動自定義頁面到控件后,頁面會生成相應(yīng)的自定義控件的HTML代碼如下所示。<formid="form1"runat="server"><div><MyControl:ServerControl1ID="ServerControl11"runat="server"/></div></form>詳細(xì)源代碼參見ServerControl1的ServerControl1.cs文件,項目WebApp7-2中的Default.aspx文件2.2復(fù)合自定義控件最常見的復(fù)雜功能控件就是SqlDataSource控件。SqlDataSource控件是數(shù)據(jù)源控件,通過SqlDataSource控件能夠配置數(shù)據(jù)源,并且實現(xiàn)分頁、插入、刪除等功能。復(fù)合自定義控件就類似這樣一個功能復(fù)雜的控件。3用戶控件和自定義控件比較對比用戶控件和自定義控件,很多人或認(rèn)為用戶控件更加容易開發(fā),而自定義控件的門檻較高,不方便應(yīng)用程序的開發(fā)。通常用戶控件在一個項目中經(jīng)常使用,而自定義控件用來在通用的程序中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論