Bonjour

Je suis confronté à un souci d'accès à un contrôle pour mettre en place une Validator. Dans mon système j'utilise des ASCX. Là, j'en ai fais un qui me permet de mettre en place une AutoCompleteExtender. Donc il y a une TextBox dans l'ASCX.

Cet ASCX est palcé dans une cellule d'une table. Dans la cellule d'à côté je mets (enfin je tente) un Validator et comme tout validator il veut un ControleToCompare, sous la forme de l'ID.

Dans ma classe externe de création des contrôles des champs de mes formulaires (heu oui, je me suis amusé à faire ça, c'est super souple pour fabriquer des formulaires à a volée ! ) je récupère bien cette TextBox, de cette manière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
Public Shared Sub AjouterValidator(ByVal rqDefinitionChamp As String, ByRef cellVal As TableCell)
            Dim dtDefinitionChamp As DataTable = New DManager("DataDev").RetournerTable(rqDefinitionChamp)
            If dtDefinitionChamp.Rows(0).Item("Obligatoire") = 1 Then
                Select Case dtDefinitionChamp.Rows(0).Item("Type_Champ")
                    Case "dac"
                        Dim r As TableRow = cellVal.Parent
                        Dim t As TextBox = r.Cells(1).Controls(0).Controls(0).Controls(0)
                        Dim rfv As New RequiredFieldValidator
                        With rfv
                            .ID = "rfv" & dtDefinitionChamp.Rows(0).Item("Type_Champ") & dtDefinitionChamp.Rows(0).Item("Nom_Champ")
                            .ErrorMessage = "Ce champ est obligatoire"
                            .ControlToValidate = t.ID
                        End With
                        cellVal.Controls.Add(rfv)
                    Case Else
                        Dim rfv As New RequiredFieldValidator
                        With rfv
                            .ID = "rfv" & dtDefinitionChamp.Rows(0).Item("Type_Champ") & dtDefinitionChamp.Rows(0).Item("Nom_Champ")
                            .ErrorMessage = "Ce champ est obligatoire"
                            .ControlToValidate = dtDefinitionChamp.Rows(0).Item("Type_Champ") & dtDefinitionChamp.Rows(0).Item("Nom_Champ")
                        End With
                        cellVal.Controls.Add(rfv)
                End Select
            End If
        End Sub
Celui qui compte c'est le Case "dac". L'autre c'est pour les contrôles simples.
Mais lorsque je lui mets le t.ID, ben il trouve pas le contrôle et me mets son bien heureux mesasge trés clair :
Impossible de trouver l'ID du contrôle 'txtACE' référencé par la propriété 'ControlToValidate' de 'rfvdacVille'.
txtACE étant l'ID de la TextBOx dans l'ASCX et rfvdacVille étant l'ID du RequestFieldValidator que j'essaie de placer.

Pouvez vous m'aider à plonger dans l'ASCX pour récupérer l'ID de la TexteBox ?