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

ASP.NET Discussion :

[C#] Comment détecter des contrôles HTML ?


Sujet :

ASP.NET

  1. #1
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut [C#] Comment détecter des contrôles HTML ?
    Bonjours,

    Je veux savoir comment peut on détecter un controle HTML dans une page ASPX avec le code behind en prenant en compte que tous les controle HTML ne contient pas l'attribue runat="server"

    Landolsi




  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Si t'as pas runat=server, t'y a pas accès en code behind

  3. #3
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    mais il n'y pas d'autre méthode a faire car mon probleme je doit utiliser du javascript et pour le faire je suis besoin de "id" du controle mais je remarque que toutes les fonctions javascripts ne fonctionne pas a cause de modification du l'id du controle de la parts de Dotnet "il ya concaténation d'autre chaine avec l'id de mon controle"

    exemple :

    <asp:textBox id="aaa" runat="server" />

    coté client je trouve:

    <input type="text" id="$Ctl20$ContentPlaceHolder1$aaa" />
    Landolsi




  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    bizarre ça ...

  5. #5
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    sa l'orsque on utilise les MasterPage donc on remarque la perde del'information coté client "Pas de Javascript donc => PROBLEME"
    Landolsi




  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Je suis pas encore passé au 2.0 dc je peux pas t'aider la dessus

  7. #7
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    il y a tat de chose a ASP.NET v2
    Landolsi




  8. #8
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Je ne suis pas sûr qu'il soit en 2.0 puisque c'est un problème qui existait avec le composant MasterPage pour la version 1.1, et q'uil était censé être résolu pour la 2.0 (maintenant... "censé", hein ).

    Landolsi, le préfixe ajouté à l'id de tes contrôles n'est pas aléatoire. Donc rien ne t'empêche dans ton javascript d'utiliser l'id modifiée.
    Dans ton exemple, l'id à utiliser serait "$Ctl20$ContentPlaceHolder1$aaa".

    Tu pourrait aussi essayer d'utiliser des contrôles html au lieu de contrôles web (balises html classiques mais avec runat="server" au lieu de la balise aspx). J'ignore si ça règlerait le problème, mais c'est une piste.

  9. #9
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    Mais le probleme persiste avec les controle HTML classic si j'utilise Runat="server" la modification se presente:
    mais pour developper mon javascript je doit compiler la page aspx pour savoir l'id de mon controle puis je le note pour le mettre dans mon javascript mais vraiment c'est une perte de temps !!!

    est ce qu il y a solution d'autre?
    Landolsi




  10. #10
    Membre régulier
    Inscrit en
    Juillet 2005
    Messages
    83
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 83
    Points : 100
    Points
    100
    Par défaut
    Perte de temps, certes, mais bon, elle est minime, et au moins ça marche.

    Sinon, je crois que tu dois pouvoir récupérer l'ID client au moyen d'une des propriétés du contrôle ("ClientID" ?).
    Dans ton code Javascript, définit une variable lui correspondant que tu initialises via des balises asp.

  11. #11
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    Merci infinement

    vraiment c'est une bonne solution mais on doit ajouter "runat=server" , Pas probleme!

    mais reste un petit probleme:

    pour les controles server on ne peux pas générer un id automatique cad :

    <asp:TextBox runat="server" ID="txt<% GetValue(); %>" />

    donc comment faire MERCI
    Landolsi




  12. #12
    Membre régulier
    Inscrit en
    Janvier 2006
    Messages
    79
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Janvier 2006
    Messages : 79
    Points : 92
    Points
    92
    Par défaut
    Citation Envoyé par Landolsi
    pour les controles server on ne peux pas générer un id automatique cad :

    <asp:TextBox runat="server" ID="txt<% GetValue(); %>" />

    donc comment faire MERCI
    Crée des controles dynamiques auxquels tu va pouvoir assigner l'ID que tu veux.

    Voici un exemple de code pour créer un textbox. La fonction retourne un textbox que tu va pouvoir ajouter à la collection de controle de ton formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Function CreerTextBox(ByVal strId As String, ByVal strTexte As String) As System.Web.UI.Control
            Dim txtNew As New System.Web.UI.WebControls.TextBox
            txtNew.Text = strTexte
            ' ID ID ID ID 
            txtNew.ID = strId
            ' **********
            txtNew.Width = Unit.Pixel(48)
            Return txtNew
    End Function
    Comme tu peux le remarquer, c'est moi qui assigne l'ID que je désire à mon contrôle en passant la valeur en paramètre. Tu peux utiliser un compteur ou une fonction qui retourne le bon type de valeur dans la fonction.
    Hana no iro wa
    Utsuri ni keri na

  13. #13
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    Merci

    je suis d'accords mais est ce que il n'y a pas d'autre méthode à faire directement avec le code HTML.
    Landolsi




  14. #14
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par Landolsi
    Merci

    je suis d'accords mais est ce que il n'y a pas d'autre méthode à faire directement avec le code HTML.
    Faire du dynamique avec de l'HTML
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  15. #15
    Membre régulier Avatar de Landolsi
    Inscrit en
    Juillet 2005
    Messages
    135
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2005
    Messages : 135
    Points : 78
    Points
    78
    Par défaut
    Merci

    j'ai pus resoudre ce probeme avec ClientID et mon HTML est dynamique
    Landolsi




+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment créer des contrôles indicés en VB2005?
    Par michel perraut dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/09/2007, 13h13
  2. Réponses: 3
    Dernier message: 03/01/2007, 16h09
  3. Réponses: 1
    Dernier message: 21/02/2006, 17h13
  4. Comment générer des pages HTML dynamiques ?
    Par Devil666 dans le forum Java EE
    Réponses: 2
    Dernier message: 15/04/2005, 10h56
  5. Comment générer des fichiers html ?
    Par keke33 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 04/06/2004, 16h28

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