2013-08-28 1 views
0

Je récupère mes données de liste de points de partage dans C# et les affecte dans un SPGridview. Ci-dessous est le code que j'utilise pour remplir le SPGridview. J'ai une colonne appelée "Contact" dans ma SPGridview, qui est mappée au champ de la personne ou du groupe. Après la liaison, quand je vois la colonne "Contact" dans le SPGridview, je vois les résultats comme "Kumar, Ramesh; # 55; #Kumar, Amit". Mais je veux le résultat comme "Kumar, Ramesh, Kumar, Amit".Comment formater des valeurs de champ de personne ou de groupe dans C#?

S'il vous plaît aidez-moi comment y parvenir.

public void btnSearch_Click(object sender, EventArgs e) 
{ 
      SPList myList = SPContext.Current.Web.Lists["MyList"]; 
      SPQuery query = new SPQuery(); 

      query.Query = @"<Where> 
     <And> 
     <Eq> 
      <FieldRef Name='Year_x0020_Start' /> 
      <Value Type='Text'>2010</Value> 
     </Eq> 
     <Eq> 
      <FieldRef Name='Year_x0020_End' /> 
      <Value Type='Text'>2012</Value> 
     </Eq> 
     </And> 
    </Where>"; 

      DataTable tempTbl = myList.GetItems(query).GetDataTable(); 
      gdvSearchResults.DataSource = tempTbl; 
      gdvSearchResults.DataBind(); 
} 

Merci d'avance!

Répondre

0

J'ai eu un problème similaire mais dans une circonstance différente. J'utilisais le composant WebPart Content Query et éditais un modèle XSL. Mais le même # 55, etc apparaissait. Je me suis débarrassé d'elle en utilisant une expression régulière via JavaScript. Vous pouvez éventuellement faire la même chose mais sur votre colonne DataTable avant qu'elle ne soit liée à SPGridView. L'expression régulière j'ai utilisé était:

.replace(/[;#0-9]+/g, "; ") 

Je blogué à ce sujet ici: http://davidpopdan.blogspot.com/2012/11/using-people-picker-with-multiple-names.html

Aussi, si vous vous demandez ce que ces chiffres sont, ils sont l'ID de l'utilisateur, unique à la collection de sites que vous travaillons. Il y a une liste cachée qui garde la trace de cette information.

Questions connexes