Asp.net動態添加控件(转)

項目當中有,要用到動態創建控件,以前在Winform中,容易實現,Web中花了半天的時間學習了一上,現在這里記錄一下:基於asp.net2.0,簡要記錄一下頁面的控件如何動態創建的步驟,同時也記錄一下怎麼使用這些動態創建的控制項的方法。

為了使篡動態生成的控件有序,拖一個Table放在頁面上。然后將控件放在TableCell當中。我是這樣子排序的,不知各位是否有更好的解決方法,請隨后賜教。

動態添加控件,在Page_Init事件中加載。

OK,閑言少敘,實現步驟:

新建一個方法名為:CreateControlDynamically的,復制如下代碼:


    Sub CreateControlDynamically(ByVal nCount As Integer)
        
For i As Integer = 1 To nCount
            
Dim tr As TableRow = New TableRow()
            
Dim tc As TableCell = New TableCell()
            
Dim myLabel As Label = New Label()

            
'這裏設置該label的ID,對於不同的label,必須設置成不同的ID
            myLabel.ID = "lbl" & i
            myLabel.Text 
= "Critial" & i
            tc.Controls.Add(myLabel)
            tr.Cells.Add(tc)

            
Dim tc2 As TableCell = New TableCell()
            
Dim mytextbox As TextBox = New TextBox()
            mytextbox.ID 
= "txt" & i
            mytextbox.Text 
= "TextBox" & i
            tc2.Controls.Add(mytextbox)
            tr.Cells.Add(tc2)

            
Me.tbl.Rows.Add(tr)
        
Next

調用的時候,在Page_Init中,直接敲CreateControDynamically(5)OK了。順便將aspx的源碼也貼出來:


<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    
<title>Create Control Dynamically</title>
</head>
<body>
    
<form id="form1" runat="server">
    
<div>
        
<asp:Table ID="tbl" runat="server">
            
<asp:TableRow ID="trLbl" runat="server">
            
</asp:TableRow>
            
<asp:TableRow ID="trTbx" runat="server">
            
</asp:TableRow>
        
</asp:Table>
        
<br />
        
<asp:Button ID="btnOK" runat="server" Text="Button" /></div>
    
</form>
</body>
</html>

OKF5運行一下,看到了什么,52列的十個控件顯示出來了。

至於如何使用你剛動態創建控件的呢?要使用這些控件,首先必須要知道這些控制項的ID,對於上文所說的這些控制項,由於我在使用的時候,在後面加了12345之類的后綴。你在使用的時候,也建議這樣子命名,便於后面的編程調用。就用以下代碼實現:

CType(Me.FindControl("tbx1"), TextBox).Text=”自定義的Text值”
http://www.cnblogs.com/jinliangliu/archive/2007/10/20/931600.html
原文地址:https://www.cnblogs.com/binlyzhuo/p/1433709.html