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

Silverlight Discussion :

Invoquer du javascript depuis un programme Silverlight


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut Invoquer du javascript depuis un programme Silverlight
    Bonjour

    voilà je fait une appli silverlight pour sharepoint 2010 et j'ai un soucis concernant l'intégration de mon appli dans sharepoint. Le problème est que côté sharepoint, la hauteur de mon composant Silverlight doit être variable..

    Voici le code:
    Côté Silverlight, j'ai une grid qui contient un stackPanel, donc de taille variable, et sur l'évènement SizeChanged de cette grid, j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void MaGrid_SizeChanged(object sender, SizeChangedEventArgs e)
            {
                HtmlPage.Window.Invoke("fixWebPartHeight", LayoutRoot.ActualHeight);
            }
    Maintenant côté sharepoint j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <script type="text/javascript" src="/Scripts/jquery-1.4.4.min.js" />
    <script type="text/javascript">
     function fixWebPartHeight(height) {   
          $("#MonWebPart").height(height); 
    } 
    </script>
    <object id="MonWebPart" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" >      
    <param name="source" value="/SiteAssets/MonProgrammeSilverlight.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="white" />
          <param name="minRuntimeVersion" value="3.0.40624.0" />
          <param name="autoUpgrade" value="true" />
    </object>
    Quand j'exécute ma page Web, j'ai bien mon contrôle Silverlight qui s'exécute, mais la hauteur ne varie pas. J'ai une erreur javascript sur la page concernant l'appel de mon script "fixWebPartHeight".

    J'en conclu alors que ce doit surement être une erreur Silverlight. Quelqu'un a déjà eu ce soucis?

  2. #2
    Invité
    Invité(e)
    Par défaut
    bon je ne crois pas ton code Silverlight en soit la cause mais essaie ça pour voir ce que ça donne :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    HtmlPage.Window.Invoke("fixWebPartHeight", new double[] { LayoutRoot.ActualHeight });

    Par contre ton code javascript est un peu incorrect. je suis vraiment nul en javascript mais penses tu que le fait de mettre
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.getElementById('MonWebPart').height = height;

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    cela ne change rien.. j'ai épluché de nombreux forums à ce sujet et tous indiquent la même méthode.. je pense que ça doit venir de sharepoint mais je suis complétement perdu pour les faire communiquer..

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2009
    Messages
    2 056
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2009
    Messages : 2 056
    Par défaut
    Est ce que déjà un simple appel à une fonction qui fait un "alert" fonctionne?

    Est ce que sur divers navigateurs l'erreur est la même?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par micka132 Voir le message
    Est ce que déjà un simple appel à une fonction qui fait un "alert" fonctionne?
    c'est pas du tout bête ce test.

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    c'est bon j'ai finalement la solution:
    côté silverlight j'ai fait une méthode sur l'évènement SizeChanged de ma grid:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void Grid_SizeChanged(object sender, SizeChangedEventArgs e)
            {
                if (e.PreviousSize.Height != 0.0)
                    Grid.Dispatcher.BeginInvoke(
                        new Action(
                            delegate()
                            {
                                changerHauteur(e.NewSize.Height);
                            }
                        ));
            }
    avec ma méthode changerHauteur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void changerHauteur(double height)
            {
                HtmlPage.Window.Invoke("setContentHeight", height);
            }
    et côté sharepoint:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <script type="text/javascript">
    function setContentHeight(height)
    {     
    document.getElementById('WebPart').height = height;
    } </script>
     
    <object id="WebPart" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%">
          <param name="source" value="MonProgrammeSilverlight.xap"/>
          <param name="onError" value="onSilverlightError" />
          <param name="background" value="Transparent" />
          <param name="windowless" value="True" />
          <param name="minRuntimeVersion" value="3.0.40624.0" />
          <param name="autoUpgrade" value="true" />
    </object>
    et ça marche très bien comme ça

    merci pour votre aide

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

Discussions similaires

  1. Invoquer un Web Service depuis un programme Java ?
    Par RudyWI dans le forum Services Web
    Réponses: 4
    Dernier message: 18/08/2009, 18h21
  2. Réponses: 5
    Dernier message: 20/02/2006, 14h11
  3. Problème sur la commande COPY depuis un programme Java
    Par klereth dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 10/02/2006, 14h14
  4. Faire apelle a une fonction javascript depuis un onclick=&am
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/12/2005, 21h41
  5. Comment appeler une fonction JavaScript depuis Delphi ?
    Par Alfred12 dans le forum Web & réseau
    Réponses: 4
    Dernier message: 17/06/2005, 18h15

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