Tjena! Jag har skapat en dropdownlista dynamiskt i i en serverside tabell <table><tr>.... osv och gett den ett id "drUnits". Det går fint att skapa den och den dyker upp snyggt i tabellen. <b> Min fråga är då, hur hittar jag den så jag kan läsa av värdet av den i page_load? Jag har försökt med "page.findcontrol" men den verkar bara hitta det som ligger i dess container, dvs "form1". Det var det jag misstänkte.... Tack för svaret jag får leta mig ned genom tabellen.Hur hitta dynamiskt skapad kontroll i page load?
Min fråga är då, hur hittar jag den så jag kan läsa av värdet av den i page_load? Jag har försökt med "page.findcontrol" men den verkar bara hitta det som ligger i dess container, dvs "form1".
Några förslag?
mvh
RobertSv: Hur hitta dynamiskt skapad kontroll i page load?
</b>
Och sedankan du i sin tur använda form1.findcontrol för att söka neråt. Antagligen så ligger inte din dynamiskt skapade kontroll direkt på formuläret ligger under någon annan kontroll (datagrid, repeater eller nåt) och det är under den du skall söka. Vill du söka genom alla kontroller på sidan får du gör det rekursivt med början på Page.
Enklare förklarat: http://www.odetocode.com/Articles/116.aspxSv: Hur hitta dynamiskt skapad kontroll i page load?
mvh
RobertSv: Hur hitta dynamiskt skapad kontroll i page load?
Daniel Wertheim hade en fin lösning i en gammal tråd
Citerar:
Gjorde så här (säkert går det på ett annat mer effektivare sett och vet du ett sådant, får du gärna visa detta):
I MyControl finns:
Private Function DigDeep(ByVal SearchInControl As Control, ByVal FindMe As String) _
As Control
'Locals
Dim tmpCtrl As Control = SearchInControl.FindControl(FindMe)
'Check if the control exists or not. If not then
'check if the current(Control) has any controls
If Not tmpCtrl Is Nothing Then
Return tmpCtrl
ElseIf Not SearchInControl.HasControls Then
Return Nothing
End If
'Go through each control in the current control
For Each tmpCtrl In SearchInControl.Controls
'Check if the current child control has any controls
If tmpCtrl.HasControls Then
'Locals
Dim retVal As Control
'Recursion
retVal = Me.DigDeep(tmpCtrl, FindMe)
'Check if we have found the control
If Not retVal Is Nothing Then Return retVal
End If
Next
End Function
I MyControl anropar jag sedan:
Me.DigDeep(Me.Page, "XID")