如何获得单个listitem字段值?

时间:2012-08-29 20:25:13

标签: drop-down-menu caml sharepoint-list sharepoint-object-model

我有一个SharePoint列表,其中Roles作为列(Admin,Viewer,Manager)和文档类型作为项目(Word docs,PPtx docs,excel docs)。我已使用每个角色具有每个文档类型的权限填写相应的值。

我已经构建了一个包含2个下拉列表的Web部件。 Dropdown1有Roles,Dropdown2有Doc Types。

如何为每个下拉列表使用所选值并查询列表中的相应值?

我使用CAML还是可以使用SharePoint对象模型?

using (SPSite siteCol = new SPSite("http://mySharepoint/"))
{
    using (SPWeb web = siteCol.RootWeb)
    {
        SPList list = web.GetList("/Lists/PermissionMatrix");

        SPListItem item = list.GetItemByIdSelectedFields([*Requires ID*], "Role");

        String role1= (String)item["Roles"];
    }
}

不起作用,因为我必须使用Item ID,我只能使用CAML查询该项目

请帮忙。感谢

1 个答案:

答案 0 :(得分:0)

SharePoint 2010中提供了多种技术和概念。首先,将SPQuery与CAML查询结合使用,以请求与给定条件匹配的列表项。举个例子,你应该看看MSDN(http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.aspx)。

此简短示例正在查找ListItem ID大于20的所有已完成项目。

var sampleQuery = new SPQuery();
sampleQuery.Query = @"<Where>
     <And>
       <FieldRef Name='Status' />
       <Value Type='Text'>Completed</Value>
     </And>
     <Gt>
       <FieldRef Name='Id' />
       <Value Type='Number'>20</Value>
     </Gt>
   </Where>";
var foundItems = list.GetItems(sampleQuery);

如MSDN文章中所述,您可以使用LINQ 2 SharePoint,以便根据SharePoint网站中提供的结构生成强类型模型类。