Obtenir des noms de champ d'une listItem - (Fortement typé?) dans SharePoint 2010 API du Client
Je suis très nouveau pour SharePoint, à l'aide de 2010. Essayer de voir ce que nous pouvons faire avec elle, en particulier avec les Listes. Et j'ai le sentiment que je suis absent quelque chose d'assez évident, mais ne peut pas le trouver.....
Dans un site Sharepoint, j'ai créé une liste appelée Gens Célèbres: Ajout de quelques personnes, Frank Sinatra etc.
- Nom De Famille: Sinatra
- Prénom: Frank
- E-mail: [email protected]
- Titre De L'Emploi: Chanteuse
- etc
Alors j'ai essayé d'obtenir cette information dans une simple application console C#, de renvoi et d'essayer de nombreux exemples que j'ai trouvé.
Mais je suis coincé autour de travail que le réel fieldNames(?) sont que j'ai besoin de consulter, car il ne semble pas être fortement typé. Mais aussi à l'aide de l'aime de "E-mail" ne semble pas fonctionner soit
Voici un exemple que j'ai essayé. (À partir de: Comment faire pour Récupérer les Éléments de la Liste)
string siteUrl = "http://servername/site/";
var clientCtx = new ClientContext(siteUrl);
Microsoft.SharePoint.Client.List oList = clientCtx.Web.Lists.GetByTitle("Famous People");
var camlQuery = new CamlQuery {ViewXml = "<View><RowLimit>100</RowLimit></View>"};
ListItemCollection collListItem = oList.GetItems(camlQuery);
clientCtx.Load(collListItem,
items => items.Include(
item => item.Id,
item => item.DisplayName,
item => item.HasUniqueRoleAssignments));
clientCtx.ExecuteQuery();
foreach (ListItem oListItem in collListItem)
{
Console.WriteLine("ID: {0} \nDisplay name: {1} \nUnique role assignments: {2}",
oListItem.Id, oListItem.DisplayName, oListItem.HasUniqueRoleAssignments);
}
Console.ReadLine();
clientCtx.Dispose();
Qui ramène:
ID: 1
Display name: Clough
Unique role assignments: False
ID: 2
Display name: Sinatra
Unique role assignments: False
ID: 3
Display name: Simpson
Unique role assignments: False
ID: 4
Display name: Skywalker
Unique role assignments: False
J'ai essayé chacune des méthodes sur les exemples du lien que j'ai fourni ci-dessus. Mais à partir de là je n'ai aucune idée de comment faire les autres propriétés telles que le "Travail", ou "E-mail".
Ou par exemple si je fais face à une Liste qui, je ne sais pas, comment puis-je trouver les noms de champs valides à partir de mon application via un service web?
Grâce.
- Obtenir une copie de SharePointManager (spm.codeplex.com)
Vous devez vous connecter pour publier un commentaire.
La chose à prendre en compte est que chaque SPListItem a un ensemble différent de champ en fonction du type de contenu.
C'est également modifié en fonction de la liste l'élément est assis dans.
Donc, c'est pourquoi il n'est pas fortement typé indexation dans les champs...
Cependant, en ajoutant le code suivant devrait vous aider à obtenir une sensation pour ce qui est à l'intérieur de chaque listitem
La propriété SPField.SchemaXml montre le détail sur la configuration de chaque champ.
Avoir une copie de SharePointManager vous donnera une bonne idée de la façon dont n'importe quel site se tient ensemble.
Si vous ne pouvez utiliser le modèle objet client à découvrir ce
Vous pouvez accéder à d'autres propriétés via le propriété indexée sur le
ListItem
.Vous devez ajouter les propriétés comme
ViewFields
à laViewXml
:Note le
_x0020_
l'encodage des espaces.Si vous allez à votre liste de paramètres, vous pouvez trouver le nom de la colonne en cliquant sur elle. Cela va vous envoyer un lien comme: http://servername/_layouts/FldEdit.aspx?List=%7BEACD90E2%2DED64%2D42EE%2DB1FB%2D2631687C545F%7D&Field=Title
Le nom du champ est le membre de droite de Champ=Titre.
Étant donné que vous connaissez le nom des colonnes, vous pouvez utiliser le code suivant: