私はウィザード コントロールを持っており、ユーザーが何人の子供を持っているかを入力することに基づいて、いくつかの入力フィールドを持つ単純なテーブルを含むユーザー コントロールを追加しています。例: 何人の子供がいるので、マスターページにもあるウィザードのステップ 5 に入るループに基づいて、ユーザー コントロール ascx を追加します。
次に、findcontrol を使用してこれらの入力ボックスへのアクセスを試行し、データベースにデータを保存できるようにします。ユーザー コントロールが表示され、ポストバック後にページの読み込み時に再作成されても、findcontrol は常に null になります。
どんな助けでも大歓迎です。コントロール ボタンの検索: Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim numbchildren As Integer = CInt(Howmanychildren.Text)
For i As Integer = 1 To numbchildren - 1
Dim textbox As TextBox = TryCast(Me.Wizard1.FindControl("WizardStep5").FindControl("Minor_1_Child_Name"), TextBox)
'Dim textbox2 As TextBox = TryCast(Me.Wizard1.FindControl("WizardStep5").FindControl("Howmanychildren"), TextBox)
If textbox IsNot Nothing Then
Response.Write("Found TextBox1 <br>")
Dim val As String = textbox.Text
Response.Write(val & "<br>")
Else
Response.Write("not found" & "<br>")
End If
' Insert into DB
'SaveValueToDatabase(val)
Next
End Sub
ユーザーコントロールは、ドロップダウンに機能を追加しました:
Protected Sub Doyouhavechildren_SelectedIndexChanged (オブジェクトとしての ByVal 送信者、System.EventArgs としての ByVal e) ハンドル Doyouhavechildren.SelectedIndexChanged
Dim numbchildren As Integer = CInt(Howmanychildren.Text)
Dim cnt As Integer = 1
'Panel1.Controls.Clear()
Select Case Doyouhavechildren.SelectedIndex
Case 0
ViewState.Add("Doyouhavechildren", numbchildren)
Do While cnt <= numbchildren
Dim uc As Web.UI.UserControl = DirectCast(Page.LoadControl("MinorChild.ascx"), Web.UI.UserControl)
uc.ID = "Minor_" + cnt.ToString()
Wizard1.ActiveStep.Controls.Add(uc)
cnt = cnt + 1
Loop
Exit Select
Case 1
Exit Select
End Select
End Sub
ユーザー制御:
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="MinorChild.ascx.vb" Inherits="MinorChild" %>
名前
年
SS#
生年月日
検索コントロールは、静的な howmanychildren フィールドで機能します