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

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  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
    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 ...

  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 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

  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
    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

  11. #11
    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 ...

  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
    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 ....

  13. #13
    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...

+ 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