如何筛选SharePoint上的列表

时间:2009-12-10 06:14:23

标签: c# asp.net .net visual-studio-2008 sharepoint-2007

我正在使用SharePiont Server 2007 Enterprise和Windows Server 2008 Enterprise,我正在使用发布门户模板。我正在使用VSTS 2008 + C#+ .Net 3.5进行开发。我在SharePoint网站上手动定义了一个自定义列表(自定义列表的所有列类型都是SharePoint内置类型),我想定义一些自定义规则来过滤此列表以仅显示列表的一部分。任何参考代码?

EDIT1:这是我目前的代码。我已经使用这样的代码来检索我需要的项目,但是如何在SharePoint列表中显示已撤消的项目?

                SPSite oSiteCollection = SPContext.Current.Site;
                SPList oList = oSiteCollection.AllWebs[0].Lists["PeopleTest"];
                SPQuery oQuery = new SPQuery();
                oQuery.Query = "<Where><Eq><FieldRef Name='Department'/>" +
                        "<Value Type='Text'>Computer</Value></Eq></Where>";
                SPListItemCollection collListItems = oList.GetItems(oQuery);

                foreach (SPListItem oListItem in collListItems)
                {
                    writer.Write(oListItem["Department"].ToString()+"###");
                } 

1 个答案:

答案 0 :(得分:4)

如果您使用的是服务器(即非客户端)dll,则可以SPList.GetItems Method使用SPQuery作为参数:

SPSite oSiteCollection = SPContext.Current.Site;
SPList oList = oSiteCollection.AllWebs["Site_Name"].Lists["List_Name"];
SPQuery oQuery = new SPQuery();
oQuery.Query = "<Where><Eq><FieldRef Name='Schedule'/>" +
        "<Value Type='CHOICE'>2 weeks</Value></Eq></Where>";
SPListItemCollection collListItems = oList.GetItems(oQuery);

foreach (SPListItem oListItem in collListItems)
{
    Label1.Text += SPEncode.HtmlEncode(oListItem["Title"].ToString()) 
        + " -- " + SPEncode.HtmlEncode(oListItem["EndDate"].ToString())   
        + "<BR>";
}

请注意,此示例代码的foreach部分以HTML格式显示数据,仅作为示例提供。您可以使用目前使用的相同渲染。关键是使用SPQuery.GetItems(...)

如果您使用客户端dll,请参阅MSDN中的this link和其他人(此链接仅是一个示例,它与SharePoint Team Services 客户端API相关)。