點選按鈕動態建立控制項並獲得值的原理及方法

2022-02-03 22:10:02 字數 2432 閱讀 3556

說到動態建立控制項 就必須說下頁面的生命週期了  上個簡單的圖

說下可能遇到的問題  控制項建立好了  但再點別的按鈕時  就又消失了  因為沒有儲存狀態

還有的在init檢視viewstate等 這些都是對頁面生命週期理解的並不清楚~ 下面上demo說 

第一步 先是動態建立控制項

<

html

xmlns

="">

<

head

runat

="server"

>

<

title

>

title

>

head

>

<

body

>

<

form

id="form1"

runat

="server"

>

<

div>

<

asp:hiddenfield

id="hfcontrol"

runat

="server"

/>

<

asp:button

id="btncreate"

runat

="server"

text

="動態建立"

onclick

="btncreate_click"

/>

<

asp:button

id="getvalue"

runat

="server"

text

="獲取選中的值"

onclick

="getvalue_click"

/>

<

asp:label

id="lbl"

runat

="server"

text

="">

asp:label

>

<

asp:panel

id="panelcontrol"

runat

="server"

>

asp:panel

>

div>

form

>

body

>

html

>

第二部 動態建立的code 這裡說下  點選按鈕動態建立的原理  點選按鈕時  給hiddenfield賦值 或者viewstate賦值 然後在建立控制項  這樣當每次進入頁面時 判斷iddenfield或者viewstate是否有值 有值則顯示那個動態建立的控制項  這樣就儲存住裡狀態  當你再點其他控制項時則不會丟失了 再次強調 不要寫在!ispostback裡面  那個是是否回發

protected

void

page_load(

object

sender, eventargs e)if(

!ispostback)

//這個是判斷是否為回發 如果把建立控制項寫在這裡 控制項當然會消失咯

}///

///建立控制項

//////

///protected

void

btncreate_click(

object

sender, eventargs e)

//////

動態建立dropdownlist控制項

///private

void

createdropdownlist()

第三部 則是點選控制項   獲得動態建立的控制項選中的值 這裡寫了點選控制項獲得  還寫了 自身回發事件獲得

//////

點選按鈕 獲得選中的ddl的值

//////

///protected

void

getvalue_click(

object

sender, eventargs e)

}///

///動態建立的dropdownlist的事件 注意動態建立時 訂閱了這個事件

//////

///protected

void

ddl_selectedindexchanged(

object

sender, eventargs e)

}

順便說下  在頁面裡加上  page指令裡 加上  trace="true"  可以看到很多細節  幫助很大

ispostback 的本質和原理~ 看到很多人說 在page裡都要加上這個  看~ 今天的例子不就沒加麼~

歡迎關注~

如何動態建立按鈕,並響應訊息

如何讓動態建立的按鈕響應滑鼠雙擊?利用按鈕的bs pushbutton風格,具有該風格的按鈕被單擊時會發出wm command訊息,他的響應原理和用類嚮導定義的函式一樣。只不過它的響應函式原形,訊息對映以及函式實現需要你自己手動寫進去 例如 如 cbutton m btn 因為按鈕是顯示在對話方塊上...

Jquery獲得控制項值的方法

一 jquery獲得伺服器控制項值的方法 伺服器控制項 1.txtuserid.clientid val 2.input id txtuserid val 3.id txtuserid val 二 jquery獲得控制項值的方法 取值 是乙個jquery物件,而不是乙個dom element val...

C 動態建立按鈕及 按鈕的訊息響應

動態建立的按鈕 都會在訊息 oncommand 中得到處理,無論是什麼訊息,都會處理的 1 建立按鈕 複製 如下 cbutton btn new cbutton leuxserz btn create t 方法 ws child ws visible,crect 0,0,50,50 this,2 注...