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 :

GetElementByID ne marche pas.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Par défaut GetElementByID ne marche pas.
    Bonjour à tous,

    J'essaye d'appeler GetElementByID dans une page aspx mais cela me met :

    "Erreur d'exécution Microsoft JScript: 'but1' a la valeur Null ou n'est pas un objet."

    et

    "Erreur d'exécution Microsoft JScript: 'hiddenChimeString' a la valeur Null ou n'est pas un objet."
    (Au niveau des lignes 13 et 15 du code suivant)

    Pourtant j'estime que le code est simple :

    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
    27
    28
    29
    30
    31
    32
    33
     
     
    <%@ Page Language="C#" AutoEventWireup="True" CodeBehind="TestChimePro.aspx.cs" Inherits="Xdb_v2.TestChimePro" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head >
        <title>Test Chime Pro</title>
    <script language="JavaScript"> 
     
        var but1 = document.getElementById("<%= this.but1.ClientID %>");
        but1.disabled = false;
        var hiddenField = document.getElementById("<%= hiddenChimeString.ClientID %>");
    	hiddenField.value = "11";
     
    </script>
    </head>
    <body>
        <form id="form1" runat="server">
         <asp:Table runat ="server">
     
            <asp:TableRow>
               <asp:TableCell>
                  <asp:HiddenField id="hiddenChimeString" runat="server" EnableViewState="true"/>
                  <asp:Button ID="but1" runat="server" OnClick="but1_Click" Text = "Click here" EnableViewState="true"/>
               </asp:TableCell>
            </asp:TableRow>
     
        </asp:Table>   
        </form>
    </body>
    </html>
    Auriez-vous une idée ?

    Merci d'avance !

    Laurent.

  2. #2
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Salut,

    C est a cause des guillemets. Tu veux utiliser le nom autogenere mais il cherche "<%= this.but1.ClientID %>". Il faut je crois utiliser des simple cote ou ne pas mettre de cote Ca donnerais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
        var but1 = document.getElementById(<%= this.but1.ClientID %>);

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Par défaut
    worm83 : merci pour ta réponse.

    J'ai retiré les guillemets et je les ai aussi remplacés par des quotes mais c'est pareil : j'ai le même message.

  4. #4
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Ok j ai pas de vs sous la main ou un autre éditeur mais je pense que le problème se situe de cote. Tu récupère pas le bon id autogenere. Par le debugger essaye de récupérer la valeur de <%= this.but1.ClientID %>. J ai déjà fzit un code dans ce genre. Je regarderais ce soir.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 45
    Par défaut
    merci à worm83 pour son soutien.

    En fait, j'ai la réponse :

    Cela ne marche pas car l'interprétation du HTML se fait du début du fichier vers la fin.

    Donc je doit mettre :

    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
     
     
    <body>
        <form id="form1" runat="server">
         <asp:Table runat ="server">
     
            <asp:TableRow>
               <asp:TableCell>
                  <asp:HiddenField id="hiddenChimeString" runat="server" />
                  <asp:Button ID="but1" runat="server" OnClick="but1_Click" Text = "Click here" />
               </asp:TableCell>
            </asp:TableRow>
     
        </asp:Table>   
        </form>
    </body>
    Avant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <script language="JavaScript"> 
     
        var but1 = document.getElementById("<%= this.but1.ClientID %>");
        but1.disabled = false;
        var hiddenField = document.getElementById("<%= hiddenChimeString.ClientID %>");
    	hiddenField.value = "11";
     
    </script>
    Et maintenant çà marche beaucoup mieux !!

    Laurent

  6. #6
    Membre émérite Avatar de worm83
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Février 2010
    Messages
    459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2010
    Messages : 459
    Par défaut
    Ha oui effectivement j avais pas vu Ca comme Ca

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

Discussions similaires

  1. getElementById ne marche pas bien
    Par daydream123 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/10/2011, 13h18
  2. getElementById qui ne marche pas
    Par ChTiRiBi dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 28/04/2010, 13h35
  3. mon getElementById ne marche pas
    Par Tooomas dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 05/03/2007, 15h06
  4. 'SHOW TABLES' marche pas sous postgresql !?
    Par fet dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 13/05/2004, 09h28
  5. Sysdate qui marche pas ??
    Par StouffR dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/08/2002, 13h23

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