在日常專案開發中,我們會經常用到自定義控制項,我們通過乙個簡單的例子來說明,在日常專案中我們經常會用到,或者控制項,我們以imagebutton為例來說明。
"很多時候我們需要在很多頁面上放上面這段**,每次都要重複設定imageurl 當路徑換了。或者名稱換了,我們需要替換很多地方。有沒有更簡單的方法呢,使用自定義控制項。在專案中我們經常使用一些新增 刪除,修改的按鈕 來代替按鈕。我們以此為例來說明。imgbtn
" runat="
server
" imageurl="
~/images/add.png
" />
1、建立乙個類庫專案,或者web控制項庫專案都可以,新增乙個類(class)。繼承imagebutton
public2、我們在同乙個專案中,一般使用的大多是一樣的。比如新增 刪除,這些按鈕。那麼我們在定義乙個列舉 用於區分不同的,我們定義了四種型別 新增 修改 檢視 刪除class
custimagebutton : imagebutton
public3、定義乙個屬性,用於設定 的型別enum
custimagetype
[bindable(true我們定義了乙個自定義的屬性imagetype,型別是custimagetype列舉型別。為了便於在控制項的屬性視窗顯示,我們設定了幾個特性)] [category(""
)] [defaultvalue(custimagetype.add)]
[localizable(
true
)]
public
custimagetype imagetype
set }
[bindable(true4、重寫imagebutton控制項的render方法)] 指定成員是否通常用於繫結
[category(""
)] 指定當屬性或事件顯示在乙個設定為「按分類順序」模式的 system.windows.forms.propertygrid 控制項中時,用於給屬性或事件分組的類別的名稱
[defaultvalue(custimagetype.add)] 指定屬性的預設值
[localizable(
true)] 指定屬性是否應本地化
protected在頁面中引用如下:override
void
render(htmltextwriter writer)
base
.render(writer);
}
c#" autoeventwireup="執行效果true
" codebehind="
index.aspx.cs
" inherits="
webdemo1.index
" %>
custcontrol
" namespace="
custcontrol
" tagprefix="
cc1" %>
"-//w3c//dtd xhtml 1.0 transitional//en""
">
"">
換成如下**
顯示
可以看出 非常方便,只需要在屬性視窗設定 imagetype 就可以輕鬆實現顯示。
但是這樣也有乙個問題,我們使用的imageurl的路徑是我們web專案中的路徑,當我們的路徑改了,或者換了,我們仍然需要重複的去修改程式,而且每次引用這個控制項 我們都需要在web專案中新增對應路徑的,非常麻煩,有木有更好的方法呢,當然 那就是使用嵌入的資源這是.net2.0開始引入的。
我們在我們的控制項專案中新增剛才用到的4張。
選中其中一張右鍵點選屬性 把生成操作型別改成嵌入的資源
然後在我們的應用程式集檔案中新增
新增如下**
[assembly: webresource("custcontrol是命名空間,images是資料夾名稱後面是,用.分隔custcontrol.images.add.png
", "
img/png")]
[assembly: webresource(
"custcontrol.images.delete.png
", "
img/png")]
[assembly: webresource(
"custcontrol.images.edit.png
", "
img/png")]
[assembly: webresource(
"custcontrol.images.view.png
", "
img/png
")]
接下來就是我們如何在程式中訪問這些了。
.net提供了訪問web資源檔案的類和方法,我們這地方使用
page.clientscript.getwebresourceurl方法來訪問
所以我們修改render方法中的**為:
protected在頁面不需要引入 使用效果也是一樣。很方便吧,試試吧!override
void
render(htmltextwriter writer)
base
.render(writer);
}
直接上**:
download
自定義伺服器控制項ImageButton
在日常專案開發中,我們會經常用到自定義控制項,我們通過乙個簡單的例子來說明,在日常專案中我們經常會用到,或者控制項,我們以imagebutton為例來說明。imgbtn runat server imageurl images add.png 很多時候我們需要在很多頁面上放上面這段 每次都要重複設定...
自定義伺服器控制項開發(1)
1 呈現伺服器控制項 如果控制項要呈現使用者介面元素或者任何其他客戶端可見的元素,則應從 webcontrol 類派生該控制項。如果控制項要呈現在客戶端瀏覽器中不可見的元素 如隱藏元素或 meta 元素 則應從 control 派生該控制項。control 最重要的方法是 render 方法,它允許...
android中自定義標籤ImageButton
android的imagebutton標籤是沒有text屬性的,那麼我們要在乙個imagebutton裡放置文字時一般有兩種方法 第一種是使用ps將文字放在上,還有一種是自定義標籤。自定義標籤的 如下 import android.content.context import android.gra...