建立web自定義控制項

2021-05-09 15:21:07 字數 1546 閱讀 5204

建立asp.net web自定義控制項——例程1

web自定義控制項程式設計是asp.net程式設計裡面比較難的一部分,尤其是複雜的控制項需要用到平常不常用的一些技術技巧。

下面根據一些我自己的實踐經驗,向讀者介紹一下這方面的技術。

簡單的繼承控制項:confirmbutton

我們在用asp.net編寫應用程式的時候,經常需要在按鈕提交的時候彈出乙個[ok][cancel]的確認框,以防止使用者在操作的時候誤提交。實現這個功能傳統的方法是在**頁的page_load事件裡新增按鈕的attributes,但是每個按鈕都要新增一遍比較麻煩。下面我們來自己製作乙個有這樣功能的按鈕解決這個問題。

(例程採用c#語言)

1.新建專案

首先開啟visual studio.net,建立乙個新的web控制項庫專案,取名testlib。在解決方案資源管理器裡會有乙個標識為webcustomcontrol1.cs的源**檔案,將其改名為confirmbutton.cs。

2.編輯**

開啟confirmbutton.cs原始檔,將類名「webcustomcontrol1」改為「confirmbutton」;將類繼承自「system.web.ui.webcontrols.webcontrol」改為「system.web.ui.webcontrols.button」;

將**「[defaultproperty("text"),

toolboxdata("<:webcustomcontrol1 runat=server>")]」

改為「[defaultproperty("text"),

toolboxdata("<:confirmbutton runat=server>")]」,這樣使得aspx頁面顯示的該控制項xml**標識顯示「…」。

下面進一步修改**,刪除原有**:

private string text;

[bindable(true),

defaultvalue("")]

public string text

set

} 新增新**(用於設定在彈出的確認框中顯示的資訊):

private string _confirmmessage = "is ok?";

[bindable(true),

defaultvalue("is ok?")]

public string confirmmessage

set }

最後將protected override void render(htmltextwriter output)

改為protected override void render(htmltextwriter output)

3.新增在工具箱中顯示的圖示

選擇選單[專案]/[新增新項],在彈出的對話方塊中選擇建立「位**件」並將檔名改為「confirmbutton」(很重要,位**件名必需和類名一致)。然後在「解決方案資源管理器」中選中該位**件,並在屬性設定框中將「生成操作」的值設定為「嵌入的資源」。

好了,編譯一下吧,一切ok了。剩下的事,就是把編譯好的dll檔案找到並新增到工具箱中,在以後的web應用程式中就可以用了。

建立Web自定義控制項

控制項中方法的實現與任何其他元件中方法的實現方式相同。在 visual basic 中,如果要求方法返回乙個值,則方法以public function形式實現 如果不要求返回值,則以public sub形式實現。使用下列語法宣告方法 visual basic public function conv...

建立自定義控制項

在前一篇文章中 中,我將乙個公共視窗控制項進行了之類劃分,目的是為了修飾其行為或者說是擴充套件其功能。有時候,你只能將公共視窗控制項擴充套件到這樣的底部。我遇到的乙個例子是乙個比較普遍的話題即需要乙個格網控制項並且編輯tabular資料。我對clistctrl進行了之類劃分,並擴充套件使其能夠進行子...

建立自定義控制項

引入布局可以使布局統一,但如果布局中有控制項要能夠響應事件,我們還是需要在每個活動中對控制項進行事件的註冊。我們可以使用自定義控制項的方式解決 新建titlelayout 類並繼承linearlayout,package com.example.layouttest import android.c...