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

Développement Sharepoint .NET Discussion :

Modal dialog pour un formulaire d'enquête


Sujet :

Développement Sharepoint .NET

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut Modal dialog pour un formulaire d'enquête
    J'ai besoin d'afficher un form dans modal dialog poru afficher un formulaire de réponse à une enquête.

    J'ai trouve plusieurs script qui fonctionnent comme celui ci :
    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
    <script type="text/javascript">
    function displayLayover(url) {
    var options = SP.UI.$create_DialogOptions();
    options.url = url;
    options.dialogReturnValueCallback = Function.createDelegate(
    null, null);
    SP.UI.ModalDialog.showModalDialog(options);
    }
    var options = {};
    options.title = "Référencement de Chantier";
    options.width = 1024;
    options.height = 600;
    options.url = "../../monurl/Lists/Enquete/NewForm.aspx";
    </script>
    <div style="height: 35px; text-align: right; background-image:url('../PublishingImages/Bg_SIG_Red.png'); padding: 15px 30px; line-height: 30px;">
    <input type="button" onclick="displayLayover('../../monurl/Lists/Enquete/NewForm.aspx?IsDlg=1')" id="btnSurvey1" value="Ajouter une référence" style="font-family: arial; font-size: 30px; color: #ffffff; font-weight: bold;text-shadow: 2px 2px 2px rgba(0, 0, 0,50); border:0; background: transparent; cursor: pointer;" /></div><br/>

    Mon souci est que cela fonctionne sur mon poste, mais pas sur celui d'un collègue qui a pourtant les droits de contrôle total sur la liste d'enquête ????

    Je ne vois pas ce qui peut empêcher l'affichage du dialogue ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    Bref comme d'habitude, ceci ne peut que confirmer le grand bien que je pense de SharePoint ...

    Mon cheminement de debuggage:

    A priori le modal dialog dépend de SP.UI

    Je teste donc
    Sur les deux postes j'obtiens bien un objet en console

    Je pousse un peu plus loin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log(SP.UI.ModalDialog)
    Sur mon poste j'obtiens bien la fonction
    Sur le poste de mon collègue "Undefined" WTF ????

    C'est pourtant la même lib SP qui est chargée sur les deux postes !!!


    La solution:
    Un fallback pourri

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
        var dialog = SP.UI.ModalDialog.showModalDialog(options);
    }
    catch (error) {
        var dialog = SP.SOD.execute('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', options);
    }

    J'avoue je suis admiratif devant un outil si bien conçu ...
    On dirait un maillot de foot rouge qui n'a pas supporté le traitement thermique
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Expert confirmé Avatar de Lapinpanda
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2009
    Messages
    3 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2009
    Messages : 3 230
    Points : 4 913
    Points
    4 913
    Par défaut
    Bonjour,

    l'explication est que dans certaines situations sharepoint va charger d'avantages de librairies javascripts...

    La seule parade est de demander la chargement de la library javascript au sein même de votre composant.

    La méthode est la suivante ExecuteOrDelayUntilScriptLoaded

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    jQuery(document).ready(function() {
     ExecuteOrDelayUntilScriptLoaded(myfunction, "sp.js");
    });
    Merci d'utiliser en cas de résolution de votre problème

    N'oubliez pas non plus le petit pouce vert pour récompenser celui que vous a aidé

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    J'avais bien tenté le delay, mais je ne vois pas comme l'appliquer dans mon cas, c'est un click. Donc même en attendant dix minutes avant de cliquer ce qui je pense laisse le temps à la lib de se charger j'avais le même résultat

    ce que je ne comprends pas c'est pourquoi dans un cas il reconnait ModalDilog de SP.UI et dans l'autre non ... et ayant chargé les mêmes fichiers !
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 26/11/2010, 10h14
  2. Quel langage utiliser pour des formulaires ?
    Par le_ben dans le forum Langages de programmation
    Réponses: 19
    Dernier message: 13/10/2005, 14h08
  3. Norme JavaScript pour les formulaire
    Par rdams dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/09/2005, 14h14
  4. Recherche de composant pour un formulaire
    Par AlexB59 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 29/06/2005, 13h20
  5. Méthode pour un formulaire de mise à jour
    Par deviltaz dans le forum IHM
    Réponses: 12
    Dernier message: 07/10/2004, 11h01

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