2009-09-11 2 views
1

У меня есть элемент управления мастером, в котором я добавляю пользовательский элемент управления, содержащий простую таблицу с , некоторые поля ввода, основанные на записи пользователей о том, сколько у них детей. ex: сколько у вас детей, поэтому я добавляю пользовательский элемент управления ascx на основе этого цикла , который переходит на пятый шаг моего мастера, который также находится на главной странице.FindControl не находит динамически добавленный пользовательский контроль в управлении мастером

Затем я использую findcontrol для доступа к этим полям ввода, поэтому я могу сохранить данные в своем db, findcontrol allway имеет значение null, даже если пользовательский элемент управления отображается в видимой области и воссоздается при загрузке страницы после отправки сообщения назад.

любая помощь очень оценен. Кнопка управления находки: Protected Sub Button1_Click (ByVal отправитель As Object, ByVal е Как System.EventArgs) Ручки 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 отправителя As Object, ByVal е Как System.EventArgs) Ручки 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 = "ложных" CodeFile = "MinorChild.ascx.vb" Inherits = "MinorChild" %>

Имя

Возраст

СС #

DOB

контрольной находки работ в области howmanychildren, что является статическим

ответ

1

я понял это сам пояснит, вы должны Referance контейнера, вот что все везде иначе говоря, но я продолжал игнорировать ответ правильный код:

Dim textbox As TextBox = TryCast(Me.Wizard1.FindControl("WizardStep5").FindControl("Minor_1").FindControl("Child_Name"), TextBox) 

необходимо сначала указать имя пользователя, а затем выполнить поиск внутри него, даже несмотря на то, что клиентский источник является ругательным.

 Смежные вопросы

  • Нет связанных вопросов^_^