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 :

Création de Webpart Pour afficher le contenu d'une liste


Sujet :

Développement Sharepoint .NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Création de Webpart Pour afficher le contenu d'une liste
    Bonjour,

    J'aimerais crée un Webpart avec une CAML Query pour afficher le contenu d'une liste filtré par utilisateur sur un site SharePoint 2007.

    Voilà mon code :

    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
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
     
     
    namespace seb
    {
        public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
        {     
     
            protected override void CreateChildControls()
            {           
     
            protected override void RenderContents(HtmlTextWriter writer)
            {            
     
                try
                {
                    SPSite site = SPContext.Current.Site;
                    SPWeb web = SPContext.Current.Web;
                    SPQuery WorkflowQuery = new SPQuery();
                    SPList list = SPContext.Current.Web.Lists["ConvocationEtudiant"];
                    WorkflowQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='Departement' /><FieldRef Name='NomDoyen' /><FieldRef Name='AdresseDoyen' /><FieldRef Name='NomSecretaire' /><FieldRef Name='AdresseSecretaire' /><FieldRef Name='NomEtudiant' /><FieldRef Name='AdresseEtudiant' /><FieldRef Name='DateRD' /><FieldRef Name='LigneOK' /><FieldRef Name='WorkBox_convocationetudiant' /><FieldRef Name='_ModerationStatus' />";
     
                    WorkflowQuery.Query = "<Where><Or><Or><Eq><FieldRef Name='NomDoyen' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name+ "</Value></Eq><Eq><FieldRef Name='NomSecretaire' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name + "</Value></Eq></Or><Eq><FieldRef Name='NomEtudiant' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name + "</Value></Eq></Or></Where><OrderBy><FieldRef Name='DateRD' Ascending='True' /></OrderBy>";
     
                    SPListItemCollection items = list.GetItems(WorkflowQuery);
     
                    foreach (SPListItem item in items)
                    {
                        writer.Write("Element de la liste");
                   }
                }
                catch (Exception Ex)
                {
                    //Traitement d'erreur
     
                } 
            }
        }
    }
    La suite m'échappe

    Merci pour vos aides

    Meilleures Salutations

  2. #2
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    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
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
     
     
    namespace seb
    {
        public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
        {     
     
            protected override void CreateChildControls()
            {           
     
            protected override void RenderContents(HtmlTextWriter writer)
            {            
     
                try
                {
                    SPSite site = SPContext.Current.Site;
                    SPWeb web = SPContext.Current.Web;
                    SPQuery WorkflowQuery = new SPQuery();
                    SPList list = SPContext.Current.Web.Lists["ConvocationEtudiant"];
                    WorkflowQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='Departement' /><FieldRef Name='NomDoyen' /><FieldRef Name='AdresseDoyen' /><FieldRef Name='NomSecretaire' /><FieldRef Name='AdresseSecretaire' /><FieldRef Name='NomEtudiant' /><FieldRef Name='AdresseEtudiant' /><FieldRef Name='DateRD' /><FieldRef Name='LigneOK' /><FieldRef Name='WorkBox_convocationetudiant' /><FieldRef Name='_ModerationStatus' />";
     
                    WorkflowQuery.Query = "<Where><Or><Or><Eq><FieldRef Name='NomDoyen' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name+ "</Value></Eq><Eq><FieldRef Name='NomSecretaire' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name + "</Value></Eq></Or><Eq><FieldRef Name='NomEtudiant' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name + "</Value></Eq></Or></Where><OrderBy><FieldRef Name='DateRD' Ascending='True' /></OrderBy>";
     
                    SPListItemCollection items = list.GetItems(WorkflowQuery);
     
                    foreach (SPListItem item in items)
                    {
                        writer.Write("Element de la liste");
                   }
                }
                catch (Exception Ex)
                {
                    //Traitement d'erreur
     
                } 
            }
        }
    }
    Quel est le problème au juste ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par ludojojo Voir le message
    Bonjour,

    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
     
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using Microsoft.SharePoint;
     
     
    namespace seb
    {
        public class WebPart1 : System.Web.UI.WebControls.WebParts.WebPart
        {     
     
            protected override void CreateChildControls()
            {           
     
            protected override void RenderContents(HtmlTextWriter writer)
            {            
     
                try
                {
                    SPSite site = SPContext.Current.Site;
                    SPWeb web = SPContext.Current.Web;
                    SPQuery WorkflowQuery = new SPQuery();
                    SPList list = SPContext.Current.Web.Lists["ConvocationEtudiant"];
                    WorkflowQuery.ViewFields = "<FieldRef Name='Title' /><FieldRef Name='Departement' /><FieldRef Name='NomDoyen' /><FieldRef Name='AdresseDoyen' /><FieldRef Name='NomSecretaire' /><FieldRef Name='AdresseSecretaire' /><FieldRef Name='NomEtudiant' /><FieldRef Name='AdresseEtudiant' /><FieldRef Name='DateRD' /><FieldRef Name='LigneOK' /><FieldRef Name='WorkBox_convocationetudiant' /><FieldRef Name='_ModerationStatus' />";
     
                    WorkflowQuery.Query = "<Where><Or><Or><Eq><FieldRef Name='NomDoyen' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name+ "</Value></Eq><Eq><FieldRef Name='NomSecretaire' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name + "</Value></Eq></Or><Eq><FieldRef Name='NomEtudiant' /><Value Type='User'>" + HttpContext.Current.User.Identity.Name + "</Value></Eq></Or></Where><OrderBy><FieldRef Name='DateRD' Ascending='True' /></OrderBy>";
     
                    SPListItemCollection items = list.GetItems(WorkflowQuery);
     
                    foreach (SPListItem item in items)
                    {
                        writer.Write("Element de la liste");
                   }
                }
                catch (Exception Ex)
                {
                    //Traitement d'erreur
     
                } 
            }
        }
    }
    Quel est le problème au juste ?
    Bonjour ludojojo,

    Merci pour ton aide

    je n'arrive pas à afficher les éléments de la liste

    je pense que WorkflowQuery.ViewFields n'est pas juste

    j'ai fais une boucle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
       foreach (SPListItem item in items)
                    {
                        writer.Write(item.Title) + "<br>/");
                   }
    Pour afficher le résultat de la requête et rien ne s'affiche

    Le code comporte surement beaucoup d'erreurs

    Aussi quand j'ajoute le WebPart dans le SharePoint j'ai une erreur du type :
    Echec de demande d'autotisation du type "Microsot.SharePoint.Security.SharePointPermission......"
    Merci de m'aider

    Meilleures Salutations

  4. #4
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Points : 5 347
    Points
    5 347
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par seblono Voir le message
    je n'arrive pas à afficher les éléments de la liste
    Voici un bout de code que j'utilise pour lire le contenu d'une liste :
    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
     
    try
    {
        using (SPSite siteCollection = new SPSite("http://monsite"))
        {
            using (SPWeb rootWeb = siteCollection.OpenWeb())
            {
                SPQuery spQuery = new SPQuery();
                spQuery.Query = "<Where><Eq><FieldRef Name='MonChamp'/><Value Type='Type du champ'>Valeur de mon filtre</Value></Eq></Where>";
     
                SPList list = rootWeb.Lists["NomDeMaList"];
                SPListItemCollection itemCollection = list.GetItems(spQuery);
                if (itemCollection.Count != 0)
                {
                    foreach (SPListItem item in itemCollection)
                    {
                        if (item["Champ1"] != null)
                            MaClass.maProperty = item["Champ1"].ToString();
                    }
                }
                else
                {
                    MaClass.maProperty = "nope";
                }
            }
        }
    }
    catch (Exception ex)
    {
        MaClass.maProperty = ex.Message;
    }
    N'hésite pas à utiliser U2U query builder pour réaliser la requête caml qui te convient.

    EDIT : Bien sur, tu n'es pas obligé de passer par une classe... C'est juste un exemple. Tu peux récupérer l'information dans une variable ou autre...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2010
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Bonjour ludojojo,

    Merci beaucoup pour ton code, j'essaye et je te redis

    Bonne Journée

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/11/2014, 15h30
  2. [MySQL] Requête pour afficher le contenu d'une table.
    Par HoWeR dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 08/01/2009, 07h04
  3. Réponses: 1
    Dernier message: 01/04/2008, 14h22
  4. Réponses: 18
    Dernier message: 12/06/2006, 09h39
  5. afficher les contenu d'une liste dynamiquement
    Par mzt.insat dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/04/2006, 18h02

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