2009-02-11 7 views
2

Bonjour, J'interroge les listes de Sharepoint en utilisant la bibliothèque Sharepoint dans .net. J'ai remarqué qu'il y a plus d'un champ de titre. Comment puis-je obtenir le champ de titre défini par l'utilisateur?Obtenir un titre réel à partir des listes SharePoint

SPListItem item = myItemCollection[i]; 
item["Title"] <- provides me the wrong title field 

Est-ce un problème connu, un travail autour? Merci

Cependant, si je vais dans mes paramètres de liste et renommer la colonne du titre à l'article. Et procédez comme suit cela fonctionne:

SPListItem item = myItemCollection[i]; 
item["Article"] <- provides me the wrong title field 
+0

Pour voir ce qui se passe, installez SharePoint Manager - http://www.codeplex.com/spm – Nat

Répondre

0

Vous cherchez ["LinkTitle"] ou ["Name"] - très probablement l'ancien.

+0

Je cherche la valeur dans la colonne "Titre" ... –

+0

Est-ce une liste de tâches? Une liste de documents? –

+0

C'est ce qu'il dit Oliver. Chaque champ a un nom interne (qui ne change jamais) et un nom d'affichage. Le champ que vous voyez comme "Titre" peut avoir un nom interne de LinkTitle ou Name - vérifier le code Knights ou le gestionnaire de sharepoint codéplex – Ryan

0

Si vous avez deux éléments qui ont le même nom d'affichage mais avec des noms internes différents, SharePoint a probablement ajouté des éléments pour différencier les champs. Je voudrais mettre un point de rupture sur l'élément de la liste et regarder à travers le code xml de l'élément (copier le coller dans VS). Ensuite, vous pourrez peut-être voir comment les champs sont différents.

Si cela ne fonctionne pas, stockez le GUID et utilisez-le à la place.

2

Exécutez ceci dans une application de console. Plus que probablement votre problème est lié à la différence dans l'affichage et le nom interne comme mentionné ci-dessus. Chose à noter: même lorsque vous créez une liste personnalisée et que vous renommez le champ "Titre" par défaut, le nom interne ne change jamais de "Titre".

using (SPSite siteCollection = new SPSite("~~~~ Your site URL here ~~~~")) 
{ 
    using (SPWeb site = siteCollection.RootWeb) 
    { 
     foreach (SPField f in site.Lists["~~~~ Your list name here ~~~~"].Fields) 
     { 
      Console.WriteLine(f.InternalName + " | " + f.Title); 
     } 
    } 
} 

Console.ReadLine(); 
0

Avez-vous essayé item.Title?

Questions connexes