在葉面中動態的添加控制項

來源:互聯網
上載者:User
控制項 在實際的開發過程中,經常需要根據實際需要動態的加載一些服務器控制項或用戶控制項,一般又分為靜態和動態加載兩種.下面主要是講如何動態加載控制項,在葉面中動態加載控制項經常用PlaceHolder控制項作為一個容器來裝載這些動態加載的控制項.這個例子是當點”BtnAddControl”來添加一個新控制項
Sub BtnAddControl_Click(Sender As object,e As eventargs)
Dim txtBox As textbox = New Textbox
'先清除placeholder中的所有控制項再將產生的textbox控制項加到placeholder控制項中
PlaceHolder1.Controls.Clear()
PlaceHolder1.Controls.Add(txtBox) '這樣基本上就已經有了一個textbox控制項了,當點“BtnAddControl“時就可以看到有個textbox!
'還可以定義加載的TEXTBOX的各種屬性(注意要先添加控制項,再設置它的屬性)
txtBox.ID=“Mytextbox“
txtBox.BackColor=System.Drawing.Color.LightGreen
txtBox.text=“This is a textbox!“
ViewState(“txtBoxControl“)=True
End Sub
這樣就會在點按鈕的時候動態加載一個TEXTBOX控制項,但是這樣會有一個問題:就是在重新整理葉面的時候這個TEXTBOX又會不見.這是因為動態加載的控制項不會在葉面上自動儲存他的VIEWSTATE狀態,要想不出項這種問題,就必須在PAGE_LOAD()事件中實現,具體如下:
Sub Page_load(Sender As object,e As Eventargs)
'判斷ViewState中是否存在先前產生的控制項的ViewState,存在則重建控制項並自動加載它先前的ViewState狀態
If ViewState(”txtBoxControl”) <> Nothing Then
Dim txtBox As textbox=New textbox
PlaceHolder1.Controls.Add(txtBox)
txtBox.ID=”MytextBox”
End If
End Sub
動態加載用戶控制項是一樣的方法(PlaceHolder1.Controls.Add(”Header.ascx”)
------------------------------------------------------------------------
第一次寫文章,有點亂,還望指正!



相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。