我正在制作一份清单,供人们在我们公司的网站上执行任务。 我现在正在处理的功能是,一旦他们完成任务并将其标记为已完成,我希望我们的sharepoint webpart向他们发送一封电子邮件,其中包含他们仍需要完成的内容列表。
由于希望能够随意向列表中添加和减去项目的权力,它需要是模块化的,因此检查列表需要模块化并以模块化术语编写。
我遇到的问题是所有任务都存储在现有代码的SPList中。 我不确定如何遍历列表以查明该人是否已完成以下任务。我没有看到任何next,previous,head或tail操作(正如我所期望的那样)。由于索引使用字符串,因此它的行为更像是关联数据结构(映射)或来自数据库的主键。
请帮助,谢谢大家!
干杯,
-Jeremiah Tantongco
答案 0 :(得分:5)
SharePoint列表不是计算机科学方式的列表,而是最终用户期望列表的内容:事物列表
您应该将列表视为与数据库表类似。如果要根据条件在表(列表)中查找记录(项目),则应使用查询。
因此,在SPList中查找SPListItem的正确方法是使用SPQuery,您可以在其中以精美的XML语法(CAML)指定条件,然后将SPQuery传递给SPList.GetItems,从而获得SPListItems的集合。 / p>
这应该给你一些谷歌的条款。如果您需要有关查询语法的更多帮助,请使用U2U Caml Query Builder或为我们提供更具体的信息。
答案 1 :(得分: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
}
答案 2 :(得分:-1)
这可以解决您的问题
SPList interviewList = myWeb.Lists["listtoiterate"];
foreach (SPListItem interview in interviewList)
{
// Do Something
}