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 :

[Liste] Affecter valeur par défaut à un type "Personne ou Groupe"


Sujet :

SharePoint .NET

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [Liste] Affecter valeur par défaut à un type "Personne ou Groupe"
    Bonjour,

    je débute en SharePoint et souhaiterai affecter une valeur par défaut dans un champ de type "Personne ou Groupe".
    Lors de la création d'un nouvel élément, ce champs devra être renseigné avec les paramètres de la personne qui le crée, tout en restant modifiable.

    Est-ce possible avec le composant liste de base ou faut-il développer des nouvelles fonctionnalités ?

    D'avance merci.

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 170
    Points
    170
    Par défaut
    Salut,

    par l'UI, ce n'est pas possible de le faire, tu peux essayer de faire ça par le code. Te suffit de récupérer un SPFieldLookup, de modifier sa propriété DefaultValue et ensuite d'appeler la fonction Update de ce field

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Merci de ta réponse rapide.

    En théorie, ca me parle mais malheureusement, je ne vois pas comment m'y prendre pour l'adaptation pratique...

    Comment je récupère le SPFieldLookup pour l'adapter à ma sauce et plus généralement comment paramétrer une liste et ses composants ?
    Aurais-tu un tutorial ou un exemple qui puisse m'éclairer.

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2009
    Messages : 137
    Points : 170
    Points
    170
    Par défaut
    Salut,

    je viens de réflechir et cela ne fonctionnera pas ma technique. Effectivement, tu sauras initialiser la valeur du champ par défaut grâce au code, mais tu ne sauras pas lui dire de lui mettre l'utilisateur en cours, car cette valeur changer selon l'utilisateur connecté...

    Après tu as plusieurs solutions pour réaliser cela, mais elles ne sont pas forcément aisées... Tu peux développer un custom field dérivant de SPFieldLookup et réécrire certaines de ces fonctions pour qu'il initialise le champ avec le current user...

    Tu peux aussi voir du côté du ListFieldIterator et créer une list definition spécifique pour ce type de champ mais c'est sortir le bazooka pour tuer une mouche...

    A vrai dire, comme ça je ne vois pas de solution très efficace... Attendons les conseils des pro ^^

  5. #5
    Membre chevronné
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1 486
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 486
    Points : 2 082
    Points
    2 082
    Par défaut
    Salut,

    J'ai peut-être un début de solution batarde en javascript qui permettra de faire ce que tu veux. Attention, ça se base sur le nom de l'utilisateur en cours de connexion (pas son id) donc il faut que le champ de recherche de personnes fasse son boulot pour avoir un vrai ID de compte lié.

    Pour implémenter ça, utilise SPDesigner. Modifie les champs selon la langue :
    ’Submitted_x0020_By’ par le nom interne de ton champ (une petite analyse du source html de ta page aidera),
    ‘Welcome’ par 'Bienvenue',
    jette un coup d'oeil aux caractères type " ou ' avec un outil de colorisation de code pour être sûr qu'ils soient valides.

    Attention également aux fonctions substr (le mieux étant de mettre une variable globale contenant 'Bienvenue' et de travailler dessus pour les longueurs de champ).

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <script type="text/javascript">
    _spBodyOnLoadFunctionNames.push("fillDefaultValues");
     
    function fillDefaultValues()
    {
    	fillPeoplePickerWithCurrentUser('Submitted_x0020_By');
    }
     
    function fillPeoplePickerWithCurrentUser(pickerName)
    {
    	//get the current user from the welcome menu
    	var currentUser = getCurrentUser();
     
    	//check to see that we've got it
    	if(currentUser != null)
    	{
    		//get the people pickers input div
    		var pp = getPickerInputElement(pickerName);
    		//set it to the current user if we've found it
    		if(pp != null)
    			pp.innerHTML = currentUser;
    	}	
    }
     
    function getCurrentUser()
    {
    	var tags = document.getElementsByTagName('a');
    	for (var i=0; i < tags.length; i++)
    	{
    		if(tags[i].innerText.substr(0,7) == 'Welcome')
    		{
    			return tags[i].innerText.substr(8,tags[i].innerText.length);
    		}
    	}
    }
     
    function getPickerInputElement(fieldsInternalName)
    {
    	var result  = "";
    	var divs = document.getElementsByTagName("DIV");
    	for(var i=0; i < divs.length ; i++)
    	{
    		if(divs[i].id=="WebPartWPQ2")
    		{
    			var tds = divs[i].getElementsByTagName("TD");
    			for(var j=0; j < tds.length; j++)
    			{
    				var cellHTML = tds[j].innerHTML;
    				if(cellHTML.indexOf('FieldInternalName="' + fieldsInternalName + '"') >= 0)
    				{
    					var innerDivs = tds[j].getElementsByTagName("DIV");
    					for(var k=0; k < innerDivs .length; k++)
    					{
    						if(innerDivs[k].id.indexOf("UserField_upLevelDiv") > 0)
    						{
    							result = innerDivs[k];
    							break;
    						}
    					}
    				}
    			}
    		}
    	}
    	return result;
    }
    </script>
    Source

Discussions similaires

  1. Valeur par défaut <input type="text"> et Cookie
    Par Kai_Leng dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/03/2014, 22h25
  2. Affecter valeur par défaut BDD DBASE .DBF
    Par Hurin dans le forum Autres SGBD
    Réponses: 2
    Dernier message: 09/03/2009, 18h44
  3. Listes déroulantes valeur par défaut
    Par Antherak dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 03/10/2008, 17h42
  4. Zone de liste modifiable : valeur par défaut
    Par pafi76 dans le forum Access
    Réponses: 2
    Dernier message: 26/06/2006, 14h44
  5. Zone de liste modifiable + Valeur par défaut
    Par Frac dans le forum Access
    Réponses: 7
    Dernier message: 27/10/2005, 08h21

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