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 :

[SP2007] modification propriété d'un item dans une liste SharePoint


Sujet :

Développement Sharepoint .NET

  1. #1
    Membre habitué
    Homme Profil pro
    SharePoint
    Inscrit en
    Mai 2011
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 127
    Points : 156
    Points
    156
    Par défaut [SP2007] modification propriété d'un item dans une liste SharePoint
    Bonjour

    Je cherche actuellement à modifier une propriété d'un document se trouvant dans une bibliothèque de document.
    En réalité, je souhaite modifier la valeur du champ "Approval", pour en quelque sorte faire un workflow personnalisé (enfin ça, c'est l'autre partie du taff).

    J'ai vu qu'on pouvait modifier les propriétés d'un document avec AfterProperties, mais ça c'est lorsqu'il y a un évènement. Or, ce que je souhaite, c'est par exemple, après le remplissage d'un formulaire, en cliquant sur le bouton "Ok", ça modifie la valeur de la propriété (ou champ).

    En ce moment, je suis en train de bidouiller les SPListItemCollection et les SPItem, mais je ne récupère que les noms des propriétés, et pas leur valeur, et je n'arrive pas à en modifier...

    Edit: je viens de voir aussi qu'il y a une propriété "état d'approbation", donc je ne sais pas laquelle tenter de mettre à jour, "Approval" ou "etat d'approbation"...le but étant d'afficher "approuvé" dans les propriétés du document

    Merci d'avance

  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
    tu as tenté de mettre à jour un autre field? Car je sais plus trop si tu peux modifier la valeur de ce champ

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 45
    Points : 26
    Points
    26
    Par défaut
    Salut

    Je te mets ici la fonction que je me sert pour modifier la valeur d'un champ d'un item.

    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
    public void UpdateItem(SPListItem p_oListItem, SPField p_oFieldInfo, Object p_oFieldInfoData)
            {
                try
                {
                    p_oListItem[p_oFieldInfo.Id] = p_oFieldInfoData;
                }
                catch (SPException xError)
                {
                    p_oListItem.Properties.Add("Error" + new Guid(), xError.Message);
                }
                finally
                {
                    p_oListItem.UpdateOverwriteVersion();
                    p_oListItem.Update();
                }
     
            }
    Pour ton cas ça donnerait un truc du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    SPListItem monItem = maList.Items["monItemName"];
    SPFieldDateTime monFieldCreateBy = (SPFieldDateTime)maList.Fields["Create By"];
    SPUser maValeur = web.EnsureUser("login");
    UpdateItem(monItem, monFieldCreateBy, maValeur);
    J'espère que ça répond à ton besoin

  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
    Voici une autre version de 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
    public bool ChangeItem(string itemName)
    {
        try
        {
            using (SPSite siteCollection = new SPSite("http://tonsite"))
            {
                using (SPWeb rootWeb = siteCollection.OpenWeb())
                {
                    rootWeb.AllowUnsafeUpdates = true;
                    SPQuery spQuery = new SPQuery();
                    spQuery.Query = "<Where><Eq><FieldRef Name='monDOC'/><Value Type='Text'>MaValue</Value></Eq></Where>";
     
                    SPListItemCollection itemCollection = rootWeb.Lists["MaList"].GetItems(spQuery);
                    foreach (SPListItem item in itemCollection)
                    {
                        item[itemName] = "Valeur";
                        item.Update();
                    }
                    rootWeb.AllowUnsafeUpdates = false;
                }
            }
        }
        catch (Exception)
        {
            return false;
        }
        return true;
    }
    Bien sur il te reste à adapter le code pour ton cas. Il te faut donc modifier le spQuery, le nom du site...
    En espérant que cela te sera utile.

  5. #5
    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
    Toujours pas résolu ?
    Un problème ?

  6. #6
    Membre habitué
    Homme Profil pro
    SharePoint
    Inscrit en
    Mai 2011
    Messages
    127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : SharePoint
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2011
    Messages : 127
    Points : 156
    Points
    156
    Par défaut
    Merci pour vos réponses.
    Désolé de ne pas avoir donné de retour avant, mais je ne reçois pas les alertes par mails lors de réponses.
    Je vais tester tout ça et je vous dis ce que ça donne.
    Merci encore

  7. #7
    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 James Dt Voir le message
    Désolé de ne pas avoir donné de retour avant, mais je ne reçois pas les alertes par mails lors de réponses.
    Dans ton tableau de bord, tu peux choisir de t'abonner ou non à une discution et de recevoir ou non des mails...

Discussions similaires

  1. Ajouter un item dans une liste Sharepoint
    Par lesanglier dans le forum InfoPath
    Réponses: 3
    Dernier message: 06/12/2009, 19h19
  2. Réponses: 1
    Dernier message: 22/06/2009, 10h54
  3. [VB6] Double click d'un item dans une list...
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 15/04/2006, 18h56
  4. Selectionner automatiquement un item dans une liste
    Par nebule dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 09/12/2004, 17h03
  5. Réponses: 2
    Dernier message: 17/08/2003, 20h07

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