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

SharePoint .NET Discussion :

Equivalent webparts dans une master page


Sujet :

SharePoint .NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Equivalent webparts dans une master page
    Salut,

    L'objectif que je dois atteindre avec SharePoint est la création d'un site web.
    J'utilise donc le principe des master pages pour appliquer un design spécifique.

    ca marche mais là où je bloque c'est que l'on me demande une zone qui afficherait une série de News (par exemple issue d'une liste Sharepoint).
    hic => Zone qui doit être présente tout le temps, à tous les niveaux de la navigation.

    dans un premier temps, j'ai donc pensé à la WebPart standard "Query Content WebPart" qui permet simplement d'extraire et afficher les élements d'une liste.
    Seulement, comme toute WebPart, elle se stocke au niveau d'une page et n'est pas autorisée au sein d'une master page.

    Est-il impossible d'insuffler un minimum de dynamisme dans une master page ?

    Merci d'avance à ceux qui aurait une idée.

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Bien sûr que c'est tout à fait possible.

    Rien ne t'empêches de créer un webcontrol, càd une classe qui dérive de WebControl dans laquelle tu implémentes CreateChildControls & Render (comme pour les webparts d'ailleurs), ensuite, tu signes et déploies l'assembly dans la GAC et ensuite tu l'enregistres au niveau de ta master page avec une diretive register.

    Après, t'as plus qu'à déployer ton contrôle via le tagprefix que tu as défini dans register et le tour est joué.

    C'est un jeu d'enfant. 1h de développement max (s'il s'agit simplement de lister des items de liste)

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2007
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Custom WebControl
    Super, merci.

    Je ne savais qu'il était si simple de déployer un contenu personnalisé.

    J'ai du bien décortiquer ta réponse car je ne suis pas un habitué de asp.net.
    Pour ceux qui voudrait arriver au même résultat, voici les différentes étapes :

    Création d’un WebControl personnalisé

    - Dans VS 2005, File, New Project : C#, Windows, Web Control Library.
    - Importer les References SharePoint Services + Sharepoint Publishing pour utiliser l'object model de sharepoint et accéder au site, lists,...
    - Modifier le namespace de la classe => donner le nom du contrôle.
    - Modifier la ligne ToolBox.. pour refleter le nom du tag à utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ToolboxData("<{0}:KijkerControl runat=server></{0}:KijkerControl>")]
    - Ecrire le code pour la fonction RenderContents
    (- Dans les propriétés du projet, je préfère donner la version fixe « 1.0.0.0» )
    - Signer le projet (Project properties, new key,…)
    - Build Project

    Enregistrement du WebControl
    - Ouvrir la console Visual Studio :
    > gacutil –i « path vers la dll du projet »
    > aspnet_regbrowsers –i (c'est ce que j'utilise pour qu'il fasse un refresh de tout)

    Mentionner le WebControl comme Safe
    - Ajouter dans le fichier web.config du website sharepoint utilisant le contrôle une ligne spécifiant que le contrôle est Safe :

    Juste après tous les tag SafeControl =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <SafeControl Assembly="KijkerControl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79a8a9655fc9fcac" Namespace="KijkerControl" TypeName="*" Safe="True" />
    Rq : récupérer le PublicKeytoken dans les propriétés de la dll dans c:\windows\assembly

    Déclarer dans la master page l’utilisation du contrôle (Register)

    - Ajouter cette ligne à la suite des autres lignes de type « Register » :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@ Register TagPrefix="CustomControl" NameSpace="KijkerControl" Assembly="KijkerControl, Version=1.0.0.0, Culture=neutral, PublicKeyToken=79a8a9655fc9fcac" %>
    - Utiliser le contôle dans la master page, là où il sera utile.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <CustomControl:KijkerControl runat="server" kijkerid="1" />
    et le tour est joué, encore merci

  4. #4
    Membre expert

    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    1 581
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 581
    Points : 3 016
    Points
    3 016
    Par défaut
    Ben dites-donc, bravo, ça c'est de l'explication . Juste une petite remarque. Pour faciliter les choses, ce que je fais génaralement est de créer un petit fichier bat avec mes commandes gacutil -i etc... plus un iisreset ou un cscript ...pour faire un recycle de l'application pool (voir mes tutos) et ensuite je vais dans les propriétés du projet, dans le build events -> post build -> cd ${ProjectDir} -> install.bat (nom de mon fichier)

    Comme ça le déploiement dans la GAC se réexécute à chaque fois que je fais un build du projet.


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

Discussions similaires

  1. [Débutant] liens menu dans une master page
    Par Msysteme dans le forum Développement Web avec .NET
    Réponses: 2
    Dernier message: 12/05/2015, 16h31
  2. Ajout automatique d'une page qui contient des WebParts dans une bibliothèque
    Par hassine dans le forum Développement Sharepoint
    Réponses: 3
    Dernier message: 29/04/2011, 09h36
  3. [WSS 3.0] Ajouter un Hack CSS dans une master page
    Par farfadet dans le forum SharePoint
    Réponses: 0
    Dernier message: 03/03/2010, 13h26
  4. Récupérer une variable dans une master page
    Par Assimil dans le forum ASP.NET
    Réponses: 15
    Dernier message: 24/06/2008, 14h18
  5. [C#] Recuperation de valeur dans une autre page
    Par kenzo080 dans le forum ASP.NET
    Réponses: 8
    Dernier message: 02/06/2004, 11h32

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