91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET中怎么實現一個服務器控件

發布時間:2021-07-16 11:24:39 來源:億速云 閱讀:129 作者:Leah 欄目:編程語言

ASP.NET中怎么實現一個服務器控件,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

ASP.NET組件設計之ASP.NET服務器控件1、用戶控件

類似page,基本上不需要編程,可以將某個aspx頁面作為復用組件使用。

ASP.NET組件設計之ASP.NET服務器控件2、LiteralControl

ASP.NET 將所有不需要服務器端處理的 HTML 元素和可讀文本編譯為該類的實例。例如,開始標記中不包含 runat="server" 屬性/值對的 HTML 元素被編譯為 LiteralControl 對象。

文本控件的行為與文本容納器一樣,這意味著可以從文本控件提取文本,并通過父服務器控件的 Controls 屬性從父服務器控件的 ControlCollection 中移除文本控件。因此,當開發從 LiteralControl 類導出的自定義控件時,確保由控件自己執行任何所需的預處理步驟,而不是使用對 LiteralControl.Render 方法調用的調用來實現它們。一般都會這樣做以提高 Web 應用程序的響應時間。

LiteralControl一般不會觸發服務器端事件。

可以以編程方式分別使用 ControlCollection.Add 或 ControlCollection.Remove 方法,從頁或服務器控件添加或移除文本控件。

ASP.NET組件設計之ASP.NET服務器控件3、HtmlControl

HTML元素的ASP.NET模型服務器端對應組件。每一個HtmlControl直接對應于特定的HTML元素(不一定是輸入元素)。

ASP.NET組件設計之ASP.NET服務器控件4、WebControl

通常的Web控件。可以理解為屬于復雜的HTML元素以及服務器端處理邏輯組成的。

繼承關系:

System.Object      System.Web.UI.Control           System.Web.UI.TemplateControl                  System.Web.UI.Page           System.Web.UI.UserControl           System.Web.UI.LiteralControl           System.Web.UI.HtmlControl           System.Web.UI.WebControl

通常需要程序員開發的屬于用戶控件、web控件。xxx

從WebControl繼承而來的web服務器組件,往往繼承了豐富的UI元素和控制能力。

ASP.NET服務器控件之用戶控件

1、為什么是用戶控件

現代人喜好偷懶,喜歡“所見即所得”以及“拖放”式的編程。在一個阿ASP.NET web項目中往往會在多個頁面中存在共用的UI,譬如header footer等,如果所有頁面的內容都一致,往往采用包含特定的js文件來實現,但如果這些多個頁面都需要的UI部分跟隨不同的用戶狀態等不同而會不同,這是必須采用動態邏輯處理,普通的js/html就無法滿足要求。之前asp中采用include asp文件來實現,現在ASP.NET改變了包含asp文件的種種缺限而采用用戶控件來解決。

用戶控件本質上是一個獨立的ASP.NET文件,擴展名為ascx。用戶控件通常依賴于特定的ASP.NET web項目。當使用用戶控件時,ASP.NET頁面解析器從aspx文件中動態生成一個類,將其編譯到一個特定的裝配件(臨時緩存中托管dll),并按照.net方式引用此類實例,并進行處理。

2、如何得到用戶控件

得到用戶控件,在vs中實際上僅需要:

在web項目中添加—〉用戶控件—〉輸入用戶控件名—〉在得到的空白頁面進行UI設計,并存儲。

使用時,將用戶控件拖放在web 窗體上,即可使用用戶控件。此時vs替代我們做了一下工作:

在使用用戶控件的頁面添加一個register指令。具體為:

﹤%@ Register TagPrefix="uc1" TagName="WebUserControl1" Src="WebUserControl1.ascx" %﹥

對于頁面解釋器可解釋為:將﹤uc1: WebUserControl1 作為用戶控件來解釋,uc1為標簽前綴(類似標準web控件的asp標簽前綴),WebUserControl1作為此用戶控件的標簽,遇到這一組合就解釋為使用用戶控件實例。Src值為該用戶控件源文件所在的虛擬路徑,但不可以為絕對路徑。

3、用戶控件的實質(ASP.NET的用戶控件的背景)

ASP.NET是編譯的,處理用戶控件同處理頁面是類似的,頁面中所有元素都是編譯成特定類被ASP.NET頁面類調用、觸發事件的。用戶控件也是通過此途徑被復用的。當處理用戶控件時,頁面框架執行以下步驟:

解釋ascx文件,相應解釋成為一個派生于System.Web.UI.UserControl的托管類

動態編譯到自動生成的裝配件中。

以上過程僅在***次使用用戶控件時發生,以后復用此用戶控件會省略此步驟。頁面使用register指令,將會引用此類。頁面中的用戶控件會成為此類的實例。實際上用戶控件也是編寫ASP.NET類,派生于System.Web.UI.UserControl的類,頁面使用這些類如同使用ASP.NET的標準類,為以不同在于標準控件類內置可直接實例化使用,而用戶控件需要在使用前進行類似頁面的編譯工作,編譯得到類并組裝到裝配件后可以被實例化。

4、用戶控件編程注意事項

用戶組件不可以通過new方式實例化,因為用戶控件類屬于動態生成,new的時候(這個時候應當是頁面編譯時候,用戶控件還沒有被運行使用),用戶控件類還不存在。但是可以通過Page.LoadControl(string controlname)來裝載,此時為了loadControl可以找到用戶控件,需要采用refence指令:

﹤%@ Refence Control=”xxx/UserControlSamples.ascx”%﹥

用戶控件可以被另外用戶控件嵌套使用,但一定要確保用戶控件引用位置正確。

用戶控件本身屬于UI,可以被緩存,通過ascx文件頂端的OutPutCache指令來確定。

用戶控件代碼中到的URL是指用戶控件存在的路徑,而不是調用用戶控件的頁面代碼的路徑,需要通過Page.ResolveUrl進行正確的解析。

看完上述內容,你們掌握ASP.NET中怎么實現一個服務器控件的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

姜堰市| 慈利县| 呼伦贝尔市| 武邑县| 滁州市| 扶绥县| 灌南县| 静安区| 庆阳市| 高青县| 太仓市| 昌都县| 民县| 民乐县| 金门县| 石嘴山市| 东平县| 香港| 德格县| 新闻| 公主岭市| 汝南县| 开江县| 宜兰县| 浠水县| 襄樊市| 永定县| 兰西县| 吉林省| 浑源县| 若羌县| 昌都县| 汶上县| 门头沟区| 丰原市| 甘谷县| 铅山县| 体育| 阳信县| 兰州市| 天门市|