發布乙個比較粗糙的控制項 UpdownPanel

2021-09-30 03:15:59 字數 2652 閱讀 6386

執行效果圖

設計時的效果圖

控制項的原理

很顯然控制項的最外層是標籤,內容部分是包在內部的乙個

裡面的,通過控制div的display來實現效果的。大體的前台html結構:

測試例子

測試例子的內容

updownpanel的實現

首先,確認updownpanel控制項不需要繼承某乙個控制項,但需要一些設計時的支援,如:邊框的顏色、高、寬,所以可以確定控制項繼承於webcontrol。控制項標籤的內容要解釋成子控制項,同時需要支援事件回傳來通知是否已經開啟,所以控制項還需要繼承ipostbackeventhandler。

我們先來看控制項的屬性:

//////

標題///

public

string

title

set}

//////

距離左邊距離

///

public

unit pandingleft

set}

//////

距離上邊距離

///

public

unit pandingtop

set}

//////

是否開啟

///

[defaultvalue(

false

)]public

bool

isopen

set}

title屬性是表示標題,isopen屬性表示是否已經展開,屬性都很簡單。

控制項的事件引數類:

//////

isopenchanged事件的引數

///

public

class

changedargs : eventargs

set}

public

changedargs(

bool

bopened)

}

事件回傳:

static

object

_isopenchanged 

=new

object

();public

event

eventhandler

<

changedargs

>

isopenchanged

remove

}public

void

raisepostbackevent(

string

eventargument)}

控制項的呈現時候,首先需要重寫tagkey為"",同時要注意註冊事件回傳的指令碼,跟輸出自己的控制指令碼。這裡就不列出所有的呈現的**了,就看下關鍵的幾行**:

protected

override

void

rendercontents(htmltextwriter writer)

writer.addstyleattribute(htmltextwriterstyle.paddingtop, 

this

.pandingtop.tostring());

writer.renderbegintag(htmltextwritertag.div);

//呈現子控制項

for(

inti =0

; i 

<

this

.controls.count; i++)

writer.renderendtag();}

最後要注意的一點就是我們要讓控制項能夠在設計時支援,還需要自定義乙個controldesigner:

public

class

updownpaneldesigner : system.web.ui.design.containercontroldesigner}}

因為updownpanel控制項是容器控制項,所以我們繼承於containercontroldesigner,同時需要在控制項上標識:

[designer(

typeof

(updownpaneldesigner))]

public

class

updownpanle:webcontrol,ipostbackeventhandler

這下就可以使用了,只不過控制項還比較粗糙,在以後會逐步完善,還請大家批評,呵呵。

出處:

乙個簡單的日曆控制項

效果圖 var defaultdate new date var startyear,startmonth,startday 變數定義需要改一下,用default來定義當天的所有資訊 不能改變 var defaultmonth defaultdate.getmonth var defaultyear...

乙個css jq的日曆控制項

剛畢業,閒著的時候做了乙個日曆控制項,用css和jquery實現基本的日曆功能,包括年份和月份的翻頁,日期的選擇,根據輸入框的初始內容來初始化控制項,日期改變之後,也會更新該輸入框的內容。首先是css charset utf 8 css document x date date body date ...

乙個好看的時間控制項

1.依賴包 compile com.wx.wheelview wheelview 1.3.3 2.在布局中使用 60dp android layout height 60dp android orientation vertical wx.wheelview widget wheelview and...