程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET控件開發基礎(7)

ASP.NET控件開發基礎(7)

編輯:關於ASP.NET

上一篇寫了控件樣式的一些基礎的東西,接著我們繼續討論asp.net控件開發的一些東西.

這次我們要討論的是復合控件.本文無法一步到位完整介紹,因為討論的篇幅比較大,所以分兩次寫,這次就先講些基本概念吧,剩著的下次寫.

好象復合控件網上已經有很多教程了,相信大家也看過很多.如果看過的朋友就當我再廢話一便,沒看過的朋友希望能給你帶來幫助.

1.復合控件概念

復合控件跟用戶控件有很多相似點,最大不同就是用戶控件後綴為ascx,而復合控件編譯後則為dll文件,還可以分發給大家使用,另外其他不同點還請參考MSDN吧,說白了,復合控件靈活性更大.

2.復合控件的呈現

(1)一般控件的呈現

從第一篇到第六篇為止,我們用以呈現控件的方法介紹過的有Render方法和RenderContents方法.回顧一下吧,看以下其中的一小段代碼.

示例一

public override void Render(HtmlTextWriter writer)
    {
..
     writer.RenderBeginTag(HtmlTextWriterTag.Td);
      writer.AddAttribute(HtmlTextWriterAttribute.Name, "CreditCardNo");
      writer.AddAttribute(HtmlTextWriterAttribute.Id, "CreditCardNo");
      writer.AddAttribute(HtmlTextWriterAttribute.Type, "text");
      writer.RenderBeginTag(HtmlTextWriterTag.Input);
      writer.RenderEndTag();
      writer.RenderEndTag();

}

以前我們所做的控件都是上面這樣的寫法.我們可以認為在Render方法實現了以下兩個功能.

一.標簽布局(如td標簽,讓控件呈現的好看點-_-)

二.呈現的標簽(如input標簽)

(2)復合控件的呈現方法

我們知道asp.net控件庫裡面已經提供給了我們像TextBox這樣的控件了,就如組裝電腦一下,你可以組裝.net提供你現有的控件,然後重新拼湊成一個新的控件,這樣便成了復合控件.但其呈現方法卻又不同.

復合控件是以包含子控件的形式呈現的,具體的呈現交給子控件自己去做,因為子控件自身都已經實現了其呈現方法(每個控件都繼承自Control類).假設你還不明白就看下面的圖吧.

LabelTextBox1為復合控件,LabelTextBox2則不是.兩者的呈現方式是不同的.具體實現方法請看下文

3.完成基本復合控件基本呈現

(1)首先你要熟悉以下的屬性和方法

Control.CreateChildControls 方法用於創建子控件

Control.EnsureChildControls 方法用於確認是否已創建子控件,如果未創建完成的話則調用CreateChildControls 方法創建子控件

Control.ChildControlsCreated 屬性 獲取一個值,是否已創建子控件

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved