2011-05-24 4 views
0

J'ai une liste avec trois colonnes 1) Titre, 2) LoginUser 3) ParentSiteAccess. Si un utilisateur particulier est connecté alors j'ai besoin d'aller chercher les valeurs de la troisième colonne (par exemple ParentSiteAccess). J'utilise la requête ci-dessous pour l'obtenir.Objet de la liste de requêtes dans le point de partage utilisant des requêtes CAML

query.Query = @"<Where><Eq><FieldRef Name='LoginUser'/><Value Type='Text'>" + userName + "</Value></Eq></Where>"; 
        query.ViewFields = "<FieldRef name='ParentSiteAccess'/><FieldRef name='LoginUser'/>"; 
        query.ViewFieldsOnly = true; 

Mais je ne reçois pas avec cette approche. Quelqu'un peut-il me donner une solution valable?

+0

Est-ce que 'LoginUser' est vraiment un champ de texte? Ou est-ce un champ sélecteur de personnes? – CBono

+0

Champ de texte uniquement. –

Répondre

1

Votre requête semble bien formée, mais sans accès à votre environnement, il est très difficile de déboguer. Un problème fréquent est que les noms d'affichage des colonnes ne correspondent pas à leurs noms internes.

La meilleure chose que je peux vous dire est d'obtenir une copie d'un programme pratique et gratuit appelé U2U CAML Query Builder. La version 2007 fonctionne correctement avec SP 2010.

Connectez-vous en utilisant "SharePoint Web Services" si vous n'êtes pas dans la même boîte que votre installation SharePoint. Si vous l'êtes, l'option "Modèle d'objet" ou "Services Web" fonctionnera.

Une fois connecté, pointez sur votre liste et utilisez l'interface utilisateur pour créer votre requête. La plus belle chose à ce sujet est que vous pouvez choisir des colonnes par leur nom d'affichage, mais il construit la requête en utilisant leurs noms internes. C'est un moyen rapide d'expérimenter une requête et de recevoir des commentaires immédiats sur ce qu'elle renvoie.

Lorsque vous obtenez une requête qui fonctionne, copiez-la simplement dans la fenêtre de l'utilitaire et dans votre code.

Questions connexes