版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、創(chuàng)建服務(wù)器控件,議程,回顧架構(gòu) 創(chuàng)建服務(wù)器控件 控件屬性 觸發(fā)事件 使用客戶端腳本 重載Render 組合控件,ASP.NET中的控件,什么是 ASP.NET控件?,服務(wù)器端Web UI 組件 屬性,方法, 事件 演繹成標(biāo)注 (HTML, XML, script, etc.) 處理 posted 數(shù)據(jù)和用戶行為 封裝邏輯 多種演繹選項(xiàng) 一個(gè)控件是一個(gè).NET 類型, 基類是 System.Web.UI.Control System.Web.UI.WebControls.WebControl,兩種創(chuàng)建控件的方法,用戶控件(頁面作為控件) 容易創(chuàng)建 是存作 *.ascx的頁面 支持部分頁面緩存 用
2、于單個(gè)應(yīng)用 缺少設(shè)計(jì)時(shí)支持 定制控件 技術(shù)要求高一些 支持多個(gè)應(yīng)用 (GAC) 設(shè)計(jì)時(shí)支持非常強(qiáng)大,基于Tag的存儲(chǔ),運(yùn)行時(shí)解析Tags 創(chuàng)建控件實(shí)例 設(shè)置屬性初始值, first item second item third item ,運(yùn)行時(shí)使用控件,控件是代碼中的.NET 對(duì)象 在頁面事件中處理控件 Page_Load, Button1_Click, 等等.,void Page_Load(object send, EventArgs e) l1.Items.Add(“fourth item”); l1.ForeColor = Color.Blue; ,頁面/控件處理第一次載入,Init,
3、Load,PreRender,SaveViewState,Render,Dispose,實(shí)例化每個(gè)控件, 設(shè)置為初始狀態(tài), 加入控件樹,運(yùn)行用戶代碼, 測(cè)試 !IsPostBack條件來數(shù)據(jù)綁定到第一批值,CreateChildControls() 確??丶?zhǔn)備好被演繹,控件存儲(chǔ)狀態(tài)值(如果與初始值不同),每個(gè)控件將自身演繹到響應(yīng)中,釋放頁面和所有控件,頁面/控件處理Post back,Init,Load,PreRender,SaveViewState,Render,Dispose,從ViewState載入控件的上一次狀態(tài),Posted 數(shù)據(jù) (HTTP 表單中) 傳遞到相應(yīng)控件,按照在樹中的
4、次序觸發(fā)控件事件, 除了導(dǎo)致Post的控件. 它最后觸發(fā).,LoadViewState,Postback data,Postback events,控件屬性,屬性處理,控件類型屬性 作為控件的特性出現(xiàn) 屬性可以 : 類型成員 存儲(chǔ)在 ViewState中,EventLog控件,觸發(fā)事件,SimpleLinkButton,往 SimpleLabel控件加入事件 將流覽器客戶事件映射到服務(wù)器事件 用 Page.GetPostBackClientHyperLink()產(chǎn)生Postback 實(shí)現(xiàn) IPostBackEventHandler,ASP.NET 服務(wù)器應(yīng)用,觸發(fā)服務(wù)器端事件,將流覽器客戶事件
5、映射到服務(wù)器事件,Click!,SimpleLinkButton,客戶端腳本,HoverLabel控件,增加客戶端hover 和cursor 效果 使用Page.RegisterStartupScript 來演繹加入的腳本 設(shè)置一個(gè)特定的版本 AssemblyVersion 特性 (未在演示中) 將腳本放在一個(gè)共享的地方 /aspnet_client/assembly/version/script.js,客戶端腳本支持,提供 EnableClientScript 屬性 使用BrowserCapabilities 來確定流覽器是否支持腳本 Page.Request.Browser.EcmaScr
6、iptVersion 在 OnPreRender時(shí)作此檢驗(yàn) 因此檢驗(yàn)不在設(shè)計(jì)模式時(shí)進(jìn)行,HoverLabel,重載Render,ProgressBar控件,演繹成 HTML 表 從 WebControl繼承 “免費(fèi)”獲取許多實(shí)現(xiàn) VS.NET中的設(shè)計(jì)器支持 重載Render(),重載Render,Override Render protected override void Render() writer.Write(Text); 或者只是內(nèi)容的演繹: protected override void RenderContents() foreach (ListItem li in Items)
7、 RenderListItem(output, li); ,演繹屬性,從 WebControl繼承的控件 在開始標(biāo)記中演繹風(fēng)格屬性 基本的uplevel/downlevel 風(fēng)格支持 也可以 增加新的屬性 protected override void AddAttributesToRender() / add another attibute for the begin tag writer.AddAttribute(type, square); base.AddAttributesToRender(writer); ,ProgressBar,組合控件,組合控件,組合控件是 包含其它控件的控
8、件 一起解決常見問題 組合控件必須 為命名空間實(shí)現(xiàn)INamingContainer 重載CreateChildControls() 來根據(jù)需要?jiǎng)?chuàng)建子控件 子控件管理它們自己的視圖狀態(tài),CreateChildControls,確??丶湟褱?zhǔn)備好 PreRender FindControl 在 CreateChildControls 創(chuàng)建子控件, 設(shè)置初始屬性值 對(duì)每個(gè)請(qǐng)求給予相同的初始值 在加入控件樹之前賦初始值 加入Controls集合 連接事件處理函數(shù),CreateChildControls(),protected overrides void CreateChildControls() T
9、extBox text1 = new TextBox(); text1.ID = text1“; text1.Text = “Text”; RequiredFieldValidator req1 = new RequiredFieldValidator(); req1.ControlToValidate = text1“; req1.Text = *“; Controls.Add(text1); Controls.Add(new LiteralControl( ,RequiredTextField控件,在VS.Net中開發(fā)服務(wù)端控件,建立一個(gè)Web控件庫項(xiàng)目 編輯AssemblyInfo類型
10、Version TagPrefix 加入一個(gè)Web應(yīng)用來測(cè)試控件 Solution-Add New-Web Application 加到ToolBox中 Customize ToolBox-Browse,使用RequiredTextField控件,總結(jié),控件提供了 抽象 重用 ASP.NET 提供了豐富的控件框架 在Posts之間保持狀態(tài) 處理Post事件 從腳本處獲得客戶端處理能力 從現(xiàn)有的 ASP.NET控件繼承,使用模板,模板化控件,定制控件外觀 實(shí)現(xiàn) ITemplate 模板初始化由Parser進(jìn)行 ITemplate:InstantiateIn 控件通常會(huì)實(shí)現(xiàn)INamingConta
11、iner 載入模板 缺省模板,控件內(nèi)部所有 內(nèi)聯(lián)模板,控件內(nèi)定義 動(dòng)態(tài)載入,使用模板,ForumRepeater : Repeater 新的屬性 內(nèi)部數(shù)據(jù)綁定 模板 實(shí)現(xiàn)定制的ItemTemplate 可重載初始值,使用模板,控件Skinning,Skinning 控件,不包含 UI/Markup 由Skin控制 控件標(biāo)簽(XML, HTML, 等等) 控件UI (標(biāo)簽布局) 一個(gè)skin 文件是 一個(gè) .ascx文件 動(dòng)態(tài)載入 可以有代碼,Skinning Controls,設(shè)計(jì)時(shí)支持,創(chuàng)建一個(gè)控件設(shè)計(jì)器,從 System.Web.UI.Design.ControlDesigner繼承 與
12、DesignerAttribute關(guān)聯(lián), Designer(typeof(AspConn.ControlsCS2. ContentRotatorDesigner) public class ContentRotator : WebControl ,設(shè)計(jì)時(shí)演繹,設(shè)計(jì)時(shí)必須用HTML表示 (不管在運(yùn)行時(shí)如何演繹) 缺省情形下用Render() 的結(jié)果 重載 GetDesignTimeHtml() GetEmptyDesignTimeHtml() 當(dāng)Render返回空字符串時(shí) GetErrorDesignTimeHtml() 當(dāng)無法載入控件時(shí),設(shè)計(jì)時(shí)支持,Firing The Client Even
13、t,Create script reference using Page.GetPostBackClientHyperlink(); Client Implementation: _doPostBack(),ctl,protected override void Render(writer) string eventRef = Page.GetPostBackClientHyperlink(this,”); writer.AddAttribute(HtmlTextWriterAttribute.Href, eventRef); writer.RenderBeginTag(HtmlTextWriterTag.A); RenderContents(writer); writer.RenderEndTag(); ,Processing The Server Event,Control must implement IPostBackEventHandler Page calls controls RaisePostBackEvent() method,public class SimpleLinkButton : SimpleLabel, IPostBackEventHandler void RaisePost
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公共交通運(yùn)營成本核算制度
- 公共交通車輛安全檢查制度
- 企業(yè)供應(yīng)鏈金融與風(fēng)險(xiǎn)管理(標(biāo)準(zhǔn)版)
- 信息技術(shù)服務(wù)等級(jí)協(xié)議SLA管理手冊(cè)
- 2026年溫州護(hù)士學(xué)校招聘合同制總務(wù)處職員的備考題庫及參考答案詳解一套
- 內(nèi)蒙古民族大學(xué)2026年公開招募銀齡教師備考題庫及答案詳解1套
- 養(yǎng)老院心理慰藉制度
- 2026年濱州北海鯤晟園區(qū)管理服務(wù)有限公司公開招聘國有企業(yè)工作人員備考題庫帶答案詳解
- 2026年遼寧黃海實(shí)驗(yàn)室科研管理辦公室副主任招聘備考題庫及一套參考答案詳解
- 南平市建陽區(qū)總醫(yī)院關(guān)于2025年緊缺急需崗位編外人員招聘的備考題庫及完整答案詳解1套
- 社工專業(yè)知識(shí)培訓(xùn)活動(dòng)課件
- 四川省成都市樹德實(shí)驗(yàn)中學(xué)2026屆數(shù)學(xué)八上期末聯(lián)考試題含解析
- 收購發(fā)票培訓(xùn)課件
- 2025年鄭州競彩考試及答案
- 2025-2030兒童繪本出版行業(yè)內(nèi)容創(chuàng)作趨勢(shì)與分銷渠道及盈利模式研究報(bào)告
- syb網(wǎng)創(chuàng)直播培訓(xùn)課件
- 鞋廠與總代商的合作方案
- 2025年貿(mào)易經(jīng)濟(jì)專業(yè)題庫- 貿(mào)易教育的現(xiàn)狀和發(fā)展趨勢(shì)
- 核子儀考試題及答案
- DB46-T 481-2019 海南省公共機(jī)構(gòu)能耗定額標(biāo)準(zhǔn)
- 2021-2025年高考數(shù)學(xué)真題知識(shí)點(diǎn)分類匯編之三角函數(shù)(一)
評(píng)論
0/150
提交評(píng)論