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#] code-behind : javascript


Sujet :

ASP.NET

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut [C#] code-behind : javascript
    Bonjour � tous,

    J'ai du mal, dans des pages aspx � mettre du code-behind javascript.
    Je voudrais, par exemple, au survol de la souris au dessus d'une image contenu dans un datalist, changer mon style.
    J'ai donc fait cela:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
                <ItemTemplate>
                    &nbsp;<asp:Label ID="ID_PHOTOLabel" runat="server" Text='<%# Eval("ID_PHOTO") %>' Visible="false"></asp:Label><br />
                    <asp:Label ID="ID_ALBUMLabel" runat="server" Text='<%# Eval("ID_ALBUM") %>' Visible="false"></asp:Label><br />
                    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="this.className='test';"></asp:Image><br />
                    &nbsp;<asp:Label ID="TAILLELabel" runat="server" Text='<%# Eval("TAILLE") %>' Visible="false"></asp:Label><br />
                    <br />
                </ItemTemplate>
    avec le stle test suivant:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    test
    {
        background-color:Black;
        border:[solid][10px][#ff0000];
        cursor:crosshair;
    }
    Mais pas de changement !!

    D'autre part, j'en profite car c'est le m�me sujet je pense !!
    Comment r�cup�rer l'id de l'image s�lectionner, du c�t� client ...
    un document.getElementByID() fonctionnerait bien mais je sais pas quoi mettre entre les parenth�ses !!!!!! (vu que que je ne sais pas comment est g�n�rer l'id de mes images dans la datalist ...)

  2. #2
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    De m�moire mais j'en suis pas sur, je crois qu'il faut �crire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onmouseover="this.style.classename='test'"
    un document.getElementByID() fonctionnerait bien mais je sais pas quoi mettre entre les parenth�ses !!!!!!
    Faut cr�er ton JavaScript x�t� server avec Page.RegisterClientScriptBlock et ainsi tu ausra acc�s au bon ID (monControle.UniqueID)

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    17
    D�tails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 17
    Par d�faut
    Je ne connais pas le javascript c�t� serveur, donc c�t� client, je ferais :
    - soit tu passes l'id en param�tre, ce qui te donne :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    onmouseover="test('NAMELabel');"
    puis
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    test(champ)
    {
    ...
    }
    - soit tu utilises event
    et la fonction
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    test()
    {
          var idSrc = event.srcElement.id;				
    	document.getElementById(idSrc ).checked=true;			
    }
    Par contre, ce code ne fonctionne que sous IE ... il existe un �quivalent pour les autres navigateurs, mais je ne le connais pas.

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    Guitoux,

    J'ai fait ceci:
    du c�t� serveur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public void ImageClicked()
        {
            string script="";
            script+=DataList1.UniqueID.ToString();
            Page.RegisterClientScriptBlock("ID", script);
     
        }
    Et du c�t� client:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="alert(<%#ImageClicked() %>)"></asp:Image><br />
    Mais �videmment , �a ne marche pas ...

    Est-ce que l'appel du c�t� client est bien fait ? Je crois que cela cloche.
    Sinon, du c�t� serveur, c'est �a ?

  5. #5
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    okok, quand je disait "JavaScript c�t� server" je voulais dire �crire le code de ton javascript c�t� server, dans une string quoi. Ce qui donnerais pour par exemple une checkbox :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    string js = "<script type=\"text/javascript\">alert('cochée ?' + document.getElementById('" + maCheckBox.UniqueID + "').checked);</script>"
    Page.RegisterClientScriptBock(js, this);
    C'est de t�te, ya peut-�ter des petites erreurs

  6. #6
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    ok,
    je dois plus �tre tr�s loin du r�sultat:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
        public void ImageClicked()
        {
            string script="";
            script+="<script language='javascript'>alert('"+DataList1.UniqueID.ToString()+"')</script>";
            Page.RegisterClientScriptBlock("ID", script.ToString());
     
        }
    �a je pense que c'est bon.

    Mais l'appelle de la fonction c�t� client est fause ...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="<%# ImageClicked() %>"></asp:Image>

  7. #7
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    si c'est une fonction, faut la cr�er en javascript :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    public void ImageClicked() 
    { 
      string script=""; script+="<script language='javascript'>function tada() {alert('"+DataList1.UniqueID.ToString()+"');}</script>"; 
    Page.RegisterClientScriptBlock("ID", script.ToString()); 
    }
    puis dans le code client :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="<%# tada() %>"></asp:Image>

  8. #8
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    d�sol�, je dois para�tre long � la d�tente ...

    c�t� serveur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
         public void ImageClicked()
        {
     
            string script = ""; 
            script += "<script language='javascript'>function tada() {alert('" + DataList1.UniqueID.ToString() + "');}</script>";
            Page.RegisterClientScriptBlock("ID", script.ToString()); 
     
     
        }
    je me suis permis d'appeler ImageClicked dans la fonciton OnLoad c�t� serveur...

    c�t� client:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
     
     
    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="<%# tada() %>"></asp:Image><br />

    Et l'erreur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    Erreur	1	Le nom 'tada' n'existe pas dans le contexte actuel	C:\Inetpub\wwwroot\MySite\album.aspx	36

  9. #9
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    a oui pardon, me suis plant�, c'est :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="tada()"></asp:Image><br />
    ce qui est logique vu ke tada est une fonction cliente

  10. #10
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    Ah ba oui, suis-je b�te ...
    Voil� �a marche maintenant, du moins l'appel de la fonction.

    Il me reste un dernier souci...
    Quand je clique sur l'image, j'appelle la fonction tada(), mais elle n'a pas l'air de me retrouner l'ID de l'item sur lequel j'ai cliqu�.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
     
        public void ImageClicked()
        {
     
            string script = ""; 
            script += "<script language='javascript'>function tada() {alert('" + DataList1.SelectedItem.UniqueID.ToString() + "');}</script>";
            Page.RegisterClientScriptBlock("ID", script.ToString()); 
     
     
        }
    Datalist1.SelectedItem.UniqueID.ToStrin() me g�n�re une erreur ...

  11. #11
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    a bah oui c sur, ca pourra pas marcher :

    La cr�ation sdu Javascript ce fait avant celle du gridview, donc il n'as pas encore de ligne s�lectionn�e. De plus, avec cette m�thode tu ne r�cup�re l'id que d'une ligne !!

    essaie alors �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    public void ImageClicked()
        {
     
            string script = ""; 
            script += "<script language='javascript'>function tada(monID) {alert('" + DataList1.UniqueID.ToString() + "_' + monID);}</script>";
            Page.RegisterClientScriptBlock("ID", script.ToString()); 
     
     
        }
    je suis pas certain de _ mais je crois que c'est �a


    et dans la page aspx :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    <asp:Image ID="NAMELabel" runat="server" Text='<%# Eval("NAME") %>' Height='100px' Width ='<%# 100 %>' ImageUrl='<%# Eval("NAME") %>' ToolTip='<%# Eval("NAME") %>' onMouseOver="tada(this.id)"></asp:Image><br />
    Je suis pas certain du this.id, mais bon je crois que c'est �a

  12. #12
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    Super !!
    �a marche !! du premier coups !!!
    Meric beaucoup Guitoux !

    je vais maintenant m'atteler � r�cup�rer le chemin de l'image cliqu�e .....

    !!!

    Merci encore

  13. #13
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    oups j'ai peut-�tre cri� victoire un peu trop vite

    Le r�sultat afficher par la boite de dialogue alert() me donne:

    DataList1_DataList1_ctl02_NAMELabel
    or le v�ritable ID de la case cliqu�e est:

    DataList1_ctl02_NAMELabel

    mmmm bizarre ...

  14. #14
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    Ah ba oui mais c'est mon en fait !!!

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
     
     
    script += "<script language='javascript'>function tada(monID) {alert(monID);}</script>";
    Et en fait, je dois pouvoir le faire directement ....

  15. #15
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    effectivement, c'est bizare �a. v�rifie bien ton code...

  16. #16
    Membre Expert Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    D�tails du profil
    Informations personnelles :
    �ge : 45
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Par d�faut
    et oui j'suis con moi !! effectivemen,t en faisant onmouseover="tada(this.id)" t'as directement le BON id !! putain c fou ce con peu passer � cot� de truc �vidents quand on regarde pas au bon endroit !!

    dsl pour tout ce foutoir, la solution �t� si simple !!!

  17. #17
    Membre �clair�
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    801
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 801
    Par d�faut
    Bah au moins, gr�ce � toi, j'ai vu qu'on pouvait g�n�rer du script client c�t� serveur avec Page.RegisterClientScriptBlock qui me servira tr�s probablement plus tard !

    Donc merci et je t'en prie ne t'excuse pas, franchement tu m'aides trop !!!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 2
    Dernier message: 30/03/2007, 22h14
  2. Google Map API --> Javascript et code behind C#
    Par bridel dans le forum ASP.NET
    R�ponses: 2
    Dernier message: 22/01/2007, 21h07
  3. R�ponses: 1
    Dernier message: 20/01/2007, 11h47
  4. [VB.NET]Javascript et code behind
    Par Dadou74 dans le forum ASP.NET
    R�ponses: 1
    Dernier message: 17/11/2006, 16h30
  5. R�ponses: 5
    Dernier message: 01/08/2006, 13h41

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