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 :

[SP-2010] Plusieurs pages applicatives et une classe commune


Sujet :

Développement Sharepoint .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Par défaut [SP-2010] Plusieurs pages applicatives et une classe commune
    Bonjour,

    J’ai actuellement un problème pour associer une classe *.cs à une ou plusieurs pages *.aspx.
    Je souhaite ajouter dynamiquement des informations dans plusieurs formulaires aspx.

    Par défaut, lorsqu’on créé une page *.aspx, une autre page de classe *.aspx.cs lui est associé.
    Je pense que cette ligne fait référence à la classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="page1.aspx.cs" Inherits="MonProjet.MonProjet.page1" DynamicMasterPageFile="~masterurl/default.master" %>
    Mais comment faire lorsque l’on veut faire référence à une autre classe ?

    Voilà mon arborescence :


    J’ai essayé de changer les paramètres du CodeBehind ou Inherits, ou déplacé maclasse.cs, mais j’obtiens toujours une erreur ou le code de ma classe n’est pas exécuté. Peut-être n’ai-je pas respecté la bonne structure ?

    J'ai essayé ceci, si la classe est à la racine :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CodeBehind="/maclasse.cs"
    Inherits="MonProjet.maclasse"
    ou dans le même dossier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CodeBehind="maclasse.cs"
    Inherits="MonProjet.Layouts.MonProjet.maclasse"
    Avec ou sans CodeBehind même chose...

    Dans un projet aspx, autre que sharepoint, c’est pourtant possible…
    Des les pages *.aspx il suffit d’ajouter cette ligne et tout fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%@ Register Namespace="MonProjet" Assembly="MonProjet" TagPrefix="Formulaire" %>
    Code :
    maclasse.cs :
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web.UI;
    using System.Web.UI.WebControls;
     
    namespace MonProjet
    {
        public class maclasse : Control
        {
            protected override void CreateChildControls()
            {
                TextBox textbox = new TextBox();
                Controls.Add(textbox);
            }
        }
    }
    page1.aspx :
    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
    <%@ Assembly Name="$SharePoint.Project.AssemblyFullName$" %>
    <%@ Import Namespace="Microsoft.SharePoint.ApplicationPages" %>
    <%@ Register Tagprefix="SharePoint" Namespace="Microsoft.SharePoint.WebControls" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="Utilities" Namespace="Microsoft.SharePoint.Utilities" Assembly="Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Register Tagprefix="asp" Namespace="System.Web.UI" Assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
    <%@ Import Namespace="Microsoft.SharePoint" %>
    <%@ Assembly Name="Microsoft.Web.CommandUI, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" %>
    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="page1.aspx.cs" Inherits="MonProjet.Layouts.MonProjet.page1" DynamicMasterPageFile="~masterurl/default.master" %>
     
    <%@ Register Namespace="MonProjet" Assembly="MonProjet" TagPrefix="Formulaire" %> <!-- Code ajouté -->
     
    <asp:Content ID="PageHead" ContentPlaceHolderID="PlaceHolderAdditionalPageHead" runat="server">
     
    </asp:Content>
     
    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
             <Formulaire:MonProjet runat="server" ></Formulaire:MonProjet> <!-- Code ajouté -->
    </asp:Content>
     
    <asp:Content ID="PageTitle" ContentPlaceHolderID="PlaceHolderPageTitle" runat="server">
    Page Application
    </asp:Content>
     
    <asp:Content ID="PageTitleInTitleArea" ContentPlaceHolderID="PlaceHolderPageTitleInTitleArea" runat="server" >
    Page Mon application
    </asp:Content>
    Pouvez-vous m’aider s’il vous plait ?

  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
    Par défaut
    Tu as une page.


    public class maclasse : Control
    Ta classe hérite de COntrol.


    Une page doit hérité d'une page, comme par exemple LayoutsPageBase


    Cela vient de la, si ca marche toujours pas, ca peut venir aussi de ton chemin relatif.

    M'enfin, ce que tu fais ne sert à rien, laisse les fichier .cs associé à tes pages .aspx, sharepoint fera le ménage tout seul, il ajoutera les .aspx à ton server, les .cs seront associés à ta .dll qui sera ajouté dans la gac

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Par défaut
    Merci pour ton commentaire.

    Même en héritant de LayoutsPageBase c’est toujours pareil…
    En essayant sous un projet asp, j’ai vu qu’il ne fallait pas changer le CodeBehind/Inherits par défaut, mais simplement rajouter ces 2 lignes dans le fichier aspx (petite erreur de ma part ^^) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <%@ Register Namespace="MonProjet" Assembly="MonProjet" TagPrefix="Formulaire" %>
     
    <Formulaire:MonProjet runat="server" ></Formulaire:MonProjet>
    "MonProjet" est le namespace de maclasse.cs, ce dernier est situé à la racine du projet.

    Serait-il possible d’avoir un exemple concret svp ? :/ toi ou une personne qui passerait dans le coin
    J’ai cherché des tutos/exemples sur ce sujet et rien, est-il possible au moins d’hériter toutes les pages *.aspx d’une seule classe *.cs ? (Sous un projet SharePoint puisqu’un projet asp ca fonctionne)

  4. #4
    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
    Par défaut
    Ce que tu veux, je ne l'ai jamais vu, et je te le déconseille fortement.


    Quand on veut mutualiser des informations, on créer une classe de base, qui elle sera hérité de tes autres classes.

    C'est ta classe parent.

    Page1.aspx PageNumero1.cs : MaBase
    Page2.aspx PageNumero2.cs : MaBase
    Page3.aspx PageNumero3.cs : MaBase

    et non
    Page1.aspx PageNumero1.cs
    Page2.aspx PageNumero1.cs
    Page3.aspx PageNumero1.cs

    Sincèrement, on ne doit pas faire comme ca, et d'ailleurs je serai pas te dire si c'est possible, mais j'ai jamais essayé, car on doit pas procéder ainsi,point.

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 6
    Par défaut
    D’accord merci pour l’explication.
    J’ai finalement opté pour une bibliothèque de classe. Maintenant c’est plus clair

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

Discussions similaires

  1. Utiliser des variables applications dans une classe
    Par soso78 dans le forum VB.NET
    Réponses: 1
    Dernier message: 13/10/2008, 22h21
  2. Utiliser une variable Application dans une classe
    Par soso78 dans le forum VB.NET
    Réponses: 1
    Dernier message: 29/09/2008, 17h29
  3. variable d'application dans une classe
    Par flogreg dans le forum ASP.NET
    Réponses: 3
    Dernier message: 14/11/2007, 10h31
  4. Lire une variable d'application depuis une classe
    Par bossun dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/10/2007, 11h55
  5. Voir plusieurs pages web dans une page web
    Par lfa44 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 23/06/2007, 09h27

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