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 :

Mise en forme conditionnelle et managed metadata


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Août 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2005
    Messages : 79
    Points : 46
    Points
    46
    Par défaut Mise en forme conditionnelle et managed metadata
    Bonjour,
    Je souhaitais ajouter une mise en forme conditionnelle sur une vue liste et sur une colonne gérée par la taxonomy (metadonnée gérée, managed metadata). J'ai réussit en utilisant le code ci-dessous :

    Malgré tout, j'aimerais pouvoir faire en sorte que ce code fonctionne quand je change d'affichage mais aussi que le changement de couleur se fasse sur la ligne entière et en background.

    Pouvez-vous m'aider ? Avez-vous également un lien vers des tutos ? la liste des fonctions ? ...
    Merci
    Julien

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    *****************************************************
     
    * List View – Managed Metadata Priority Color Sample *
    * Authors: Rob Lempens + Wouter Laureys  (Spikes NV) *
     
    *****************************************************/
    (function () {
        (window.jQuery || document.write('<script src="//ajax.aspnetcdn.com/ajax/jquery/jquery-1.10.0.min.js"><\/script>'));
        // Create object that has the context information about the field that we want to change it's output render
        var priorityFilledContext = {};
        priorityFilledContext.Templates = {};
        priorityFilledContext.Templates.Fields = {
            // Apply the new rendering for Priority field on List View
            "ColoredPriority": { "View": priorityFilledTemplate}
        };
        SPClientTemplates.TemplateManager.RegisterTemplateOverrides(priorityFilledContext);
    })();
    var handledPriorities = [];
    function priorityFilledTemplate(ctx) {
        var priority = ctx.CurrentItem[ctx.CurrentFieldSchema.Name].Label;
        var className = "priorityClass" + priority;
        // The color needs only to be set once for each term (class)
        if (handledPriorities.indexOf(priority) == -1) {
            // Getting the color from the custom taxonomy property and set it for the class.
            setTaxonomyColor(ctx.CurrentItem[ctx.CurrentFieldSchema.Name], className);
            handledPriorities.push(priority);
        }
       return "<span class='"+className+"'>" + priority + "</span>";
    }
    function setTaxonomyColor(valueObject, className) {
        if (valueObject && valueObject.__type == "TaxonomyFieldValue:#Microsoft.SharePoint.Taxonomy") {
            var context = SP.ClientContext.get_current();
            var session = SP.Taxonomy.TaxonomySession.getTaxonomySession(context);
            var termStore = session.getDefaultSiteCollectionTermStore();
            var term = termStore.getTerm(valueObject.TermID);
            context.load(session);
            context.load(termStore);
            context.load(term, 'IsRoot', 'Id', 'Name', 'Parent', 'CustomProperties');
            context.executeQueryAsync(success, fail); 
            function success() {
                var color = term.get_objectData().get_properties()["CustomProperties"]["Color"] != undefined ? term.get_objectData().get_properties()["CustomProperties"]["Color"] : "";
                $("." + className).css('color', color);
            }
            function fail() {
                alert("Oops...");
            }
        }
    }

  2. #2
    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,

    je ne suis pas fan de la personnalisé avancé du rendu d'une vue de liste. Modifier la vue, rajouter / enlever des colonnes, ajouter un group by... maintenabilité... toutes ces choses qui font que cela va finir buggé et difficile à corriger ne me plaisent pas...

    Ce genre de besoin se fait via l'utilisation d'une CQWP (Content Query WebPart) ou une DataListViewWebPart (Via SharePoint Designer) afin de faire du formatting de données, selon les lignes récupérés. C'est plus simple et plus souple. On utilise du code XSLT, et on a accès à certaines fonctions (ex : format date) qui rendent le coté plus pratique!

    Après cela reste mon point de vue, et au début, on peut y passer un peu de temps, mais pas plus que bidouiller le rendu via javascript !
    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é

  3. #3
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Août 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2005
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Merci pour ta réponse,

    Si c'est plus simple avec une DataListViewWebPart de faire du formatting de données, je suis partant :-)
    J'ai trouvé ce tuto sur Youtube :
    , Est-ce bien cette méthode que tu me préconises ?

    Est-ce que je peux utiliser les métadonnées gérées ?
    Visiblement, la seule différence est que je dois modifier toutes mes listes ?

    Julien

  4. #4
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Août 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2005
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Pour info, j'ai testé le tuto ci-dessus, il faut installer SharePoint 2010.
    C'est très pratique au début mais le résultat fait totalement déchanté ! Quelle déception...

    Je pense, Lapinpanda, que tu parlais d'une autre méthode !?

  5. #5
    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
    Citation Envoyé par jdvroum Voir le message
    Pour info, j'ai testé le tuto ci-dessus, il faut installer SharePoint 2010.
    C'est très pratique au début mais le résultat fait totalement déchanté ! Quelle déception...

    Je pense, Lapinpanda, que tu parlais d'une autre méthode !?
    Bonjour,

    dans les descriptions la personne parle de SharePoint Designer 2010. hors, dans la vidéo, il utilise bel et bien sharepoint designer 2013 pour une liste SharePoint 2013, c'est impossible de se tromper quand on le voit faire.

    Ensuite, la personne créé une page, puis ajoute une webpart de liste dedans, puis formate les données à sa convenance.
    C'est bien de cela que je parlais. De cette façon on a la main au code de la page et on peut plus facilement la modifier selon le besoin voulu
    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é

  6. #6
    Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Août 2005
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2005
    Messages : 79
    Points : 46
    Points
    46
    Par défaut
    Oui, j'ai fait le tuto jusqu'au bout, il passe bien par SharePoint Designer 2010 pour la mise en forme conditionnelle. C'est d'ailleurs très pratique, dommage que cette fonction n'existe plus dans la version 2013.
    Ce que je reproche à cette méthode c'est que l'on a plus les outils de cette liste par exemple. J'avais également une colonne de liste avec le choix d'une personne ou d'un groupe et cela pose des problèmes. (toutes les images d'icones s'affichent sur le côté !)
    Il faut également mettre à jour toutes pages alors qu'il semble plus simple de n'avoir qu'à insérer le lien vers un script. D'après mes recherche, le JSLink est une nouvelle fonctionnalité dans la version 2013.

    Julien

Discussions similaires

  1. mise en forme conditionnelle et vba
    Par malabar92 dans le forum Access
    Réponses: 4
    Dernier message: 26/04/2006, 15h18
  2. Mise en forme conditionnelle
    Par the big ben 5 dans le forum Composants VCL
    Réponses: 4
    Dernier message: 23/12/2005, 16h20
  3. [VBA][Excel] mise en forme conditionnelle
    Par titflocon dans le forum Access
    Réponses: 9
    Dernier message: 19/12/2005, 11h13
  4. Réponses: 4
    Dernier message: 15/11/2005, 19h53
  5. Mise en forme conditionnelle en VBA / Cut-Paste
    Par priest69 dans le forum IHM
    Réponses: 4
    Dernier message: 03/09/2005, 14h54

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