' 使用 HTML 的<br>標籤來斷行。 Private br As LiteralControl = New LiteralControl("<br />") ' 使用 HTML 的<hr>標籤來分隔。 Private hr As LiteralControl = New LiteralControl("<hr />") Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load '檢查是否為 PostBack If IsPostBack Then If ViewState("Mode").ToString = "Add" AndAlso _ ViewState("ControlsAdded").ToString Is Nothing Then AddControls() End If ' 動態加入 TextBox 控制項。 If (CInt(ViewState("FileUploadID")) > 0) Then For intLoop As Integer = 1 To CInt(ViewState("FileUploadID")) AddNewFileUpload(intLoop.ToString()) Next End If Else ViewState("Mode") = "Init" AddControls() End If End Sub ' 覆寫載入狀態的動作,以便管理狀態。 Protected Overrides Sub LoadViewState(ByVal savedState As Object) MyBase.LoadViewState(savedState) If CType(ViewState("ControlsAdded"), Boolean) = True Then AddControls() End If End Sub Private Sub AddControls() ' 建立 FileUpload 控制項 Dim UL As New FileUpload UL.ID = "UL_0" ' 將所建立的控制項加至 PlaceHolder 控制項裡。 PlaceHolder1.Controls.Add(UL) PlaceHolder1.Controls.Add(hr) PlaceHolder1.Controls.Add(br) ' 確認已經動態加入控制項。 ViewState("ControlsAdded") = True End Sub ' 建立 FileUpload 控制項。 Private Sub AddNewFileUpload(ByVal ControlID As String) Dim FU As New FileUpload FU.ID = "TB_" & ControlID ' 將 FileUpload 加入特定的位置上。 PlaceHolder1.Controls.AddAt(CInt(ControlID), FU) End Sub Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click ' 指定所按下的按鈕模式。 ViewState("Mode") = "Add" ' 為了避免 TextBox ID 相同,使用 ViewState 來記錄目前的 TextBox ID。 If ViewState("FileUploadID") Is Nothing Then ViewState("FileUploadID") = 1 Else ' 刻意使用 ViewState 的 Add 方法。 ViewState.Add("FileUploadID", CInt(ViewState("FileUploadID")) + 1) End If AddNewFileUpload(ViewState("FileUploadID").ToString()) End Sub
全站熱搜
留言列表