我有一个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查询该项目
请帮忙。感谢
答案 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网站中提供的结构生成强类型模型类。