2010-11-28 6 views
1

J'ai un SPGridView qui affiche les éléments d'une liste (en utilisant spboundfield).Affichage Gridview pour les champs de recherche

La liste a quelques champs de recherche. et fileds multi-recherche dans mon SPGridview les valeurs de filtre d'un lookupfield apparaissent dans ce format:

{id}; # {valeur}


ce sont mes options maintenant?

Répondre

0

Créer une classe de modèle personnalisé pour un champ de modèle, dans cette classe de modèle reformater le champ de recherche que vous listez, le moyen le plus simple est bien sûr GetValueAsHtml de la classe SPField. Voici un bon didacticiel sur les modèles génériques: http://www.developer.com/article.php/3609991

+0

Existe-t-il un moyen d'utiliser la fonction string.replace pour résoudre ce problème? –

0

Vous pouvez utiliser une classe dataviewwebpart au lieu de spgridview pour accomplir ceci. En utilisant xslt vous pouvez accéder à beaucoup de bibliothèques qui vous aideront dans votre mise en forme. Marc d. Anderson a une grande bibliothèque de fonctions xslt sur le codeplex appelé sharepoint xslt templates.

http://sympmarc.com/2010/04/22/new-codeplex-project-sharepoint-xsl-templates-spxslt/

+0

J'essaye de m'éloigner de Dataview wp parce qu'il a un problème avec le genre. dvwp ne fait que trier les éléments affichés plutôt que de trier l'ensemble des données. –

0

Voici comment je résolu cette question:

<asp:TemplateField HeaderText="Campaign Members"> 
    <ItemTemplate> 
    <%# RemoveCharacters(Eval("CampaignMembers").ToString()) %> 
    </ItemTemplate> 
</asp:TemplateField> 

Dans le code:

// Make sure declare using System.Text.RegularExpression; 
protected string RemoveCharacters(object String) { 
    string s1 = String.ToString(); 
    string newString = Regex.Replace(s1, @"#[\d-];", string.Empty); 
    newString = Regex.Replace(newString, "#", " "); 
    return newString.ToString(); 
} 
1

pour les colonnes pour générer SPGridView, besoin d'utiliser SPBoundField, au lieu BoundField!

Questions connexes