IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Web avec .NET Discussion :

L'identifiant d'un contrôle pour un Validator


Sujet :

Développement Web avec .NET

  1. #1
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut L'identifiant d'un contrôle pour un Validator
    Salut tout le monde.

    Je suis devant un souci sur lequel je comprends pas la logique.
    J'ai fais un composant utilisateur pour gérer une TextBox autoComplete.
    Voici le code HTML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <%@ Control Language="VB" AutoEventWireup="false" CodeFile="DropDownAutoComplete.ascx.vb" Inherits="Composant_Integre_DropDownAutoComplete" %>
    <asp:TextBox ID="txtACE" runat="server"></asp:TextBox>
    <ajaxToolkit:AutoCompleteExtender ID="ace" runat="server" 
    		OnClientItemSelected="tbCity_ClientItemSelected"
    		TargetControlID="txtACE" 
    		UseContextKey="True" 
    		DelimiterCharacters="" 
    		Enabled="True" 
    		ServicePath="~/GMPhotoProfil.asmx"></ajaxToolkit:AutoCompleteExtender>
    <script type="text/javascript"> var tbCity_ClientItemSelected = function(sender, e){$get('<%=hfRecupValu.ClientID %>').value = e.get_value(); }</script>
    <asp:HiddenField ID="hfRecupValu" runat="server" />
    Rien de bien transcendantal, en somme. Mais notez la textBox txtACE.

    Ensuite dans une page je l'appelle comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <asp:TableCell ID="celVille">
                <Composite:DropDownAutoComplete ID="rvVille" runat="server" />        
            </asp:TableCell>
    Dans une cellule puisque je monte mon formulaire dans une table. Encore une fois, rien de compliqué.

    Et comme tout formulaire qui se respecte, je fais une validation. Je mets un RequiredFieldValidator. Mais il me dit qu'il le trouve pas.

    Il faut que j'aille dans le composant utilisateur pour trouver la TextBox txtACE et valider son contenu. Pour ça j'utilise la méthode suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With rfvVille
                Logage(celVille.Controls(0).Controls(0).ClientID)
                Dim t As TextBox = celVille.Controls(0).Controls(0)
                Logage(t.UniqueID)
                .ControlToValidate = t.UniqueID
            End With
    J'emploi ma méthode logage pour trouver des infos.
    La première me retourne
    ctl00_cphCentral_Onglets673_tcOnglet_tab672_ProfilMembre672_rvVille_txtACE
    Le seconde me retourne
    ctl00$cphCentral$Onglets673$tcOnglet$tab672$ProfilMembre672$rvVille$txtACE
    Tout ceci me parait toujours logique. Sauf que, au chargement de la page j'ai le message d'erreur suivant :
    Impossible de trouver l'ID du contrôle 'ctl00$cphCentral$Onglets673$tcOnglet$tab672$ProfilMembre672$rvVille$txtACE' référencé par la propriété 'ControlToValidate' de 'rfvVille'.
    Et pareil en utilisant le ClientID ou l'ID tout court.

    Du coup, je comprends pas pourquoi il ne plonge pas dans le composant utilisateur pour trouver la TextBox.

    Vous avez une idée ?

  2. #2
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Tu ne peux simplement pas accéder aux contrôles à l'intérieur de ton UserControl car ceux-ci sont private.
    Pour que ceux-ci soient accessible ajoute les dynamiquement en leur donnant un niveau visibilité public ou expose une propriété qui contiendra le contenu de ta textbox et valide ce contenu à la mano.

  3. #3
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ah, ok, je comprnds mieux maintenant.

    Bon, du coup j'ai avancé dans le sens de la propriété, mais sur le HiddenFields, parce qu'en fait, c'est lui qu icontient l'identifaint voulu.

    Mais j'ai des résultats bizarres. Maintenant, il est tard, peut-être que je n'ai plus les yeux en face des trous.

    En gros, j'ai l'impression, qu'en fonction du PostBack il enregistre ou pas, le truc saisi et vu qu'en plus y a de l'Ajax dans l'histoire.......

    Bref, demain, à la fraiche, je refais une batteire de test pour être sûr.

    Merci calagan99

Discussions similaires

  1. [Article] Liste des balises et de leurs enfants pour une validation XHTML 1.1
    Par giminik dans le forum Publications (X)HTML et CSS
    Réponses: 12
    Dernier message: 12/02/2018, 15h11
  2. [C# et GSM] trouver des contrôles pour cartes sim et modems gsm
    Par Abydos Business Group dans le forum Windows Forms
    Réponses: 1
    Dernier message: 25/07/2006, 00h47
  3. [formulaire] image pour bouton valider
    Par Badaboumpanpan dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 16/07/2006, 16h43
  4. [WebForms][2.0] Existe-t-il un contrôle pour afficher une vidéo ?
    Par dumser1 dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 19/05/2006, 17h58
  5. expresssions régulières pour la validation d'un mail
    Par ndj1983 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/02/2005, 13h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo