日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

自定义控件(Task01)——可以设置属性的控件

發布時間:2024/8/22 编程问答 58 豆豆
生活随笔 收集整理的這篇文章主要介紹了 自定义控件(Task01)——可以设置属性的控件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源代碼:13033480群共享

上面的自定義控件屬性是不能設置的,一個鏈接控件,應該具有可以設置的最基本的鏈接屬性HyperLink和顯示的文本Text

為了添加這兩個屬性,簡單一點地做,我們的類需要繼承自WebControl類。WebControl類已經是一個基本的控件類,它已經具備了一個控件最基本的結構,只是里面的內容還都是空的,我們要做的是,添加HyperLinkText屬性,設置控件的標記A,添加控件的屬性href,添加要顯示的文本Text

一、在類中添加可設置的屬性比較簡單:

1HyperLink屬性

??????? public string HyperLink

??????? {

??????????? get

??????????? {

??????????????? return (string)ViewState["HyperLink"];

??????????? }

??????????? set

??????????? {

??????????????? if (value.IndexOf("http://") == -1)

??????????? ????{

??????????????????? throw new ApplicationException("Specify HTTP as the protocol.");

??????????????? }

??????????????? else

??????????????? {

??????????????????? ViewState["HyperLink"] =value;

??????????????? }

??????????? }

??????? }

2Text屬性

???? ???public string Text

??????? {

??????????? get

??????????? {

??????????????? return (string)ViewState["Text"];

??????????? }

?

??????????? set

??????????? {

??????????????? ViewState["Text"] =value;

??????????? }

??????? }

二、設置控件的標記A

這個,只需要把參數A,傳遞給基類WebControl的構建函數就可以了

public LinkWebControl(): base(HtmlTextWriterTag.A)

三、添加控件的屬性href

設置好HyperLink屬性和Text屬性后,需要把這兩個屬性在呈現之前添加到HtmlTextWriter類變量output中,代碼如下:

??????? protected override void AddAttributesToRender(HtmlTextWriter output)

??????? {

??????????? output.AddAttribute(HtmlTextWriterAttribute.Href, HyperLink);

??????????? base.AddAttributesToRender(output);

??????? }

四、同樣道理,要顯示的文本Text的內容,需要在呈現前來內容之前呈現出來,因為WebControl呈現的文本為空,所以,放在呈現內容之后也可以的:

??????? protected override void RenderContents(HtmlTextWriter output)

??????? {

??????????? output.Write(Text);

??????????? base.RenderContents(output);?// Calls RenderChildren()

??????? }

五、HyperLinkText屬性,如果沒有設置,控件需要有的默認的屬性,這兩個屬性設置可以Renter()之前的Onitial函數中:

??????? protected override void OnInit(EventArgs e)

??????? {

?? ?????????Page.RegisterRequiresViewStateEncryption();

??????????? base.OnInit(e);

??????????? if (ViewState["HyperLink"] ==null)

??????????? {

??????????????? ViewState["HyperLink"] ="http://www.jsfsc.edu.cn";

??????????? }

?

??????????? if (ViewState["Text"] ==null)

??????????? {

??????????????? ViewState["Text"] ="江蘇食品職業技術學院";

??????????? }

??????? }

六、在窗體中使用自定義控件方法和前面是一樣的:

1、添加引用。

2、注冊

<%@ Register TagPrefix="apress"Namespace="CustomServerControlsLibrary"Assembly="CustomServerControlsLibrary"%>

3、添加控件

??????? <div>

??????????? <spxy:LinkWebControlID="LinkWebControl1"runat="server"BackColor="#00FF00"Font-Names="Verdana"

??????????????? Font-Size="Large"ForeColor="#FF0000">

??????????? </spxy:LinkWebControl>

??????? </div>

七、在瀏覽器是查看效果。

〖遺留問題〗

1、? 這個簡單的自定義控件,繼承Object類應該也能做。

2、WebControl類,已經具有了一些基本屬性,如BackColorForeColorFont-NamesFont-Size等,需要進一步了解。

轉載于:https://www.cnblogs.com/java20130723/archive/2012/04/24/3211650.html

總結

以上是生活随笔為你收集整理的自定义控件(Task01)——可以设置属性的控件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。