none
Utiliser le master Page du site SharePoint RRS feed

  • Question

  • Bonjour, j'ai créé un nouveau projet web sous le dossier layouts pour développer mes propres pages aspx. Le problème que je n'arrive pas à utiliser le default.master du site.
    En fait avant, j'ouvre le masterpage via SharePoint Designer puis je copie colle le code dans mon projet sous visual studio et ça marche il suffit que dans ma page j'ajoute la propriété MasterPageFile.
    Maintenant, j'ai voulu faire la même chose, mais losrque je compile, il trouve pas le chemin de certains fichier dans le code de defautl.master.

    Je souhaite savoir comment je peux hériter proprement de mon master pour que je puisse utiliser le place main.

    Merci
    mardi 4 août 2009 14:10

Toutes les réponses

  • Le dossier Layouts est pas spécialement fait pour ça, surtout si l'idée c'est d'accéder à tes pages via une URL style http://monserveur/monsite/_layouts/mapage.aspx :)
    mardi 4 août 2009 14:57
  • Bonjour, il faut que je fasse quoi pour mes pages alors ?
    mardi 4 août 2009 14:59
  • En fait faudrait surtout préciser ce que tu entends par "développer mes propres pages ASPX".
    Tu veux développer quoi au final ?

    mardi 4 août 2009 15:06
  • Bonjour,

    l'idée quand on développe des pages applicatives est d'utiliser la master page application.master, ou une autre masterpage personnalisée à condition qu'elle soit aussi située dans le répertoire LAYOUTS.

    On commence donc par étudier application.master afin de connaitre les contentplaceholders que l'on peut utiliser dans notre page.
    Ensuite, lors du développement de la page, il suffit de faire 2 choses :
    - Ajouter l'attribut MasterPage="/_layouts/Application.master"  dans la balise <% Page %> du fichier .aspx
    - Faire hériter notre page de LayoutsPageBase
           - Soit via le code behind : public class MaPage : LayoutsPageBase
           - Soit dans le fichier .aspx si il n'y a pas de code-behind, via l'attribut Inherits de la balise <% Page %>

    Cette masterpage est légèrement différente de default.master. Il est toutefois possible d'en créer une autre que l'on placera aussi dans LAYOUTS (de préférence dans un sous répertoire, comme tu as fait à priori pour l'aspx), et de la modifier pour avoir un rendu équivalent à celle du site.


    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses à vos questions et de marquer comme telles les réponses utiles
    mardi 4 août 2009 15:19
  • Bonjour, mais je n'ai pas trouvé le fichier application.master dans layouts.
    mardi 4 août 2009 15:22
  • elle y est pourtant
    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses à vos questions et de marquer comme telles les réponses utiles
    mardi 4 août 2009 15:45
  • Bonjour,

    J'ai suivi le tuto de ce site http://msdn.microsoft.com/en-us/library/cc297200.aspx qui est bien expliqué mais j'ai des problèmes :

    1/ Il reconnait pas la master page application.master (moi même je la vois pas sous layouts).

    2/ Il reconnait pas la balise

    <% @ Assembly Name ="Microsoft.SharePoint.ApplicationPages,Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>


    Et j'ai vu dans ce lien http://social.msdn.microsoft.com/forums/en-US/sharepointdevelopment/thread/e0aff09d-7158-45dd-b0d5-ae6196481d78 qu'il faut la changer par

    <% @ Assembly Name ="Microsoft.SharePoint, Version=12.0.0.0, Culture=neutral,

    PublicKeyToken=71e9bce111e9429c" %>


    3/ J'ai essayé d'enlever la propriété MasterPageFile et exécuter ce code


    SPWeb Web = SPContext.Current.Web;
    LabelTitle.Text = Web.Title;
    
    protected override void OnPreInit(EventArgs e)
    {
        base.OnPreInit(e);
    
        SPWeb Web = SPContext.Current.Web;
        string strUrl =
            Web.ServerRelativeUrl + "/_catalogs/masterpage/default.master";
    
        this.MasterPageFile = strUrl;
    }
    



    mais il y a une erreur Le chemin d'accès virtuel '/_catalogs/masterpage/default.master' correspond à une autre application, ce qui n'est pas autorisé.
    mardi 4 août 2009 15:46
  • en effet, le répertoire layouts est implémenté via un répertoire virtuel, donc une autre application au sens IIS.

    Comme je vous disais, "l'idée quand on développe des pages applicatives est d'utiliser la master page application.master, ou une autre masterpage personnalisée à condition qu'elle soit aussi située dans le répertoire LAYOUTS."

    Si vous voulez un exemple, j'ai posté sur mon blog il y a peu les sources d'un exemple de projet sharepoint packagé en .wsp, qui contient notamment une page applicative de base : http://blogs.developpeur.org/anouvel/archive/2009/04/25/sharepoint-optimiser-le-temps-de-d-veloppement-et-packager-avec-wspbuilder.aspx

    Application.master est forcément dans le répertoire 12\TEMPLATE\LAYOUTS, c'est la master page utilisé dans la partie administration des sites sharepoint. par exemple, sitesettings.aspx (la page "paramètres du site") l'utilise.
    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses à vos questions et de marquer comme telles les réponses utiles
    mardi 4 août 2009 20:15
  • Bonjour, j'ai essayé tout mais sans succès quand j'exécute j'ai toujours des erreurs comme si le ne reconnait pas la masterpage. J'ai ajouté comme vous m'avez dit MasterPageFile="/_layouts/Application.master"
    J'ai obtenu l'erreur suivante

    Message d'erreur de l'analyseur: Le chemin d'accès virtuel '/_layouts/Application.master' correspond à une autre application, ce qui n'est pas autorisé.
    mercredi 5 août 2009 08:49
  • Je souhaite utiliser un master page d'un site particulier dans mon cas voilà l'url : http://sp2008:90/GestionDeProjets/
    mercredi 5 août 2009 12:32
  • Vous avez une idée svp ?
    vendredi 7 août 2009 13:26
  • Bonjour,

    je pense que vous devriez pouvoir vous en sortir avec l'exemple de mon blog. Si ce n'est pas le cas, il doit y avoir une mécompréhension quelque part.

    Quelle est l'url de la page en question ? (celle qui doit utiliser la master page)
    Cette information devrait nous donner une piste.
    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses à vos questions et de marquer comme telles les réponses utiles
    samedi 8 août 2009 10:37
  • Bonjour, la page se trouve dans un dossier sous layouts (projet web de type http), son url : http://sp2008:90/layouts/Interventions/NewInterventions.aspx

    Cette page doit reprendre le master page par défaut du site http://sp2008:90/GestionDeProjets/.

    En gros voilà mon contexte :

    Je dois développer deux pages une en mode New et une en mode Edit et les affecter à ma liste Intervention. En effet, j'ai vu qu'avec SharePoint Designer on peut modifier les pages New et Edit... d'une liste. Donc, moi je vais  développer mes pages mais je veux garder le master page du site surtout l'onglet GestionDeProjets soit activé que j'ouvre cette page (est il possible ?). En effet, dans le site parent, on voit plusieurs onglets des sous sites dont le premier est activé et affiché en bleue foncé. Je veux dans ma page développé activé l'onglet en cours (avec CSS par exemple) et utiliser son master page.

    Merci d'avance
    dimanche 9 août 2009 13:51
  • Bonjour,

    La master page utilisée pour l'affichage des formulaires de liste est la "master page système", qu'il vous est possible de changer dans les paramètres du site, master page. url : http://sp2008:90/GestionDeProjets/_Layouts/ChangeSiteMasterPage.aspx

    Vous pouvez utiliser la même master page que pour la "master page du site".

    ----

    l'url que vous utilisez pour votre formulaire custom est incorrecte, il manque un _ devant layouts. Puisque votre besoin est maintenant clarifié je vous suggère de ne plus utiliser le formulaire développé dans _layouts mais plutot de changer la master page système, comme dit précédemment.
    http://blogs.developpeur.org/anouvel
    Merci de valider les réponses à vos questions et de marquer comme telles les réponses utiles
    lundi 24 août 2009 05:53