2009-09-29 3 views
4

Je fais une liste de contrôle pour que les gens puissent effectuer des tâches sur le site Web de l'entreprise. La fonctionnalité sur laquelle je travaille en ce moment est qu'une fois qu'ils terminent une tâche et la marquent comme terminée, je veux que notre site web sharepoint leur envoie un email contenant une liste de ce qu'ils doivent encore terminer. Comme les pouvoirs veulent être en mesure d'ajouter et de soustraire des éléments à la liste à volonté, ils doivent être modulaires, donc la vérification de la liste doit être modulaire et écrite en termes modulaires. Le problème que j'ai est que toutes les tâches sont stockées dans un SPList sur le code existant. Je ne sais pas exactement comment parcourir la liste pour savoir si cette personne a déjà fait la tâche suivante. Je ne vois aucune opération de tête ou de queue suivante (comme je l'attendrais d'une liste). Comme l'indexation utilise une chaîne, elle se comporte davantage comme une structure de données associative (carte) ou une clé primaire provenant d'une base de données.Itérer à l'aide d'un SPListItem/SPList

Aidez s'il vous plaît et merci à tous!

Cheers,

-Jeremiah Tantongco

+0

Vos utilisateurs utilisent-ils Outlook? Si c'est le cas, vous pouvez simplement utiliser la fonctionnalité hors de la boîte et vous épargner du travail – Kasper

Répondre

5

Une liste SharePoint n'est pas une liste de la manière la science informatique, mais est ce que l'utilisateur final s'attendrait une liste à: une liste des choses

Vous devriez plutôt regarder une liste comme étant similaire à une table de base de données. Si vous souhaitez rechercher des enregistrements (éléments) dans une table (liste) en fonction des conditions, vous devez utiliser une requête. Donc la bonne façon de trouver SPListItems dans un SPList est d'utiliser un SPQuery où vous spécifiez vos critères dans une belle syntaxe XML (CAML), puis passez le SPQuery à SPList.GetItems et récupérez ainsi une collection de SPListItems.

Cela devrait vous donner quelques termes pour google pour. Si vous avez besoin d'aide avec la syntaxe de la requête, utilisez U2U Caml Query Builder ou donnez-nous des informations plus spécifiques.

+2

En plus de cela, vous pouvez également interroger un SPList en utilisant LINQ: http://linqtosharepoint.codeplex.com/ –

-1

Cela peut résoudre votre problème

SPList interviewList = myWeb.Lists["listtoiterate"]; 
foreach (SPListItem interview in interviewList) 
{ 
// Do Something 
} 
0

Que vous devez parcourir la liste ou peut ne pas être un sujet de débat, mais si elle est inévitable (comme dans mon cas) le code suivant peut être utilisé .

 SPSite siteCollection = new SPSite("http://localhost/"); 
     SPWeb site = siteCollection.RootWeb; 
     SPList myList = site.Lists["My List"]; 
     SPListItemCollection itemCollection = myList.Items; 

     foreach (SPListItem item in itemCollection) 
     { 
      //Do something with each item 
     }