5

我正在为人们在我们公司网站上执行任务制作一份清单。我现在正在处理的功能是,一旦他们完成了一项任务并将其标记为已完成,我希望我们的 sharepoint webpart 向他们发送一封电子邮件,其中包含他们仍需要完成的内容的列表。

由于希望能够在列表中随意添加和减少项目的权力,它需要是模块化的,因此检查列表也需要模块化并以模块化术语编写。

我遇到的问题是所有任务都存储在现有代码的 SPList 中。我不确定如何遍历列表以查明该人是否已经完成了以下任务。我没有看到任何下一个、上一个、头部或尾部操作(正如我从列表中所期望的那样)。由于索引使用字符串,它的行为更像是关联数据结构(映射)或数据库中的主键。

请帮助,谢谢大家!

干杯,

——耶利米·坦通科

4

3 回答 3

5

SharePoint 列表不是计算机科学中的列表,而是最终用户期望的列表:事物的列表

您应该更多地将列表视为类似于数据库表。如果您想根据条件在表(列表)中查找记录(项目),那么您应该使用查询。

因此,在 SPList 中查找 SPListItems 的正确方法是使用 SPQuery,您可以在其中以良好的 XML 语法 (CAML) 指定条件,然后将 SPQuery 传递给 SPList.GetItems,从而获取 SPListItems 的集合。

这应该给你一些谷歌的条款。如果您需要有关查询语法的更多帮助,请使用U2U Caml 查询生成器或给我们一些更具体的信息。

于 2009-09-29T18:30:55.413 回答
0

您是否应该遍历列表可能是一个争论的问题,但如果它是不可避免的(就像我的情况一样),可以使用以下代码。

        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
        }
于 2011-07-12T10:42:25.147 回答
-1

这可能会解决您的问题

SPList interviewList = myWeb.Lists["listtoiterate"];
foreach (SPListItem interview  in interviewList)
{
// Do Something
} 
于 2009-10-26T16:32:44.370 回答