我在 sharepoint 2010 中查询 SPList 并填充相应的网格视图:
<asp:DataGrid runat="server" ID="gridView" AutoGenerateColumns="false" AlternatingRowStyle-BackColor="ActiveBorder" Width="95%" GridLines="Vertical" AllowPaging="true" PageSize="30" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass="alt" >
<Columns>
<asp:BoundColumn DataField="ID"></asp:BoundColumn>
<asp:BoundColumn DataField="Title"></asp:BoundColumn>
<asp:HyperLinkColumn DataTextField="Name" ></asp:HyperLinkColumn>
<asp:BoundColumn DataField="Surname"></asp:BoundColumn>
<asp:BoundColumn DataField="email"></asp:BoundColumn>
gridView.DataSource = items.GetDataTable();
如果我使用这行代码,则意味着当将其与网格视图一起使用时,它将允许我查看在 SPlist 中找到的所有项目。但我需要能够只显示列表中的特定数据,因此我使用 SPQuery 来过滤列表,代码如下:
Guid webId = web.ID;
SPListItemCollection items = list.Items;
SPList currentTestList = web.Lists[listGuid];
// query
SPQuery oQuery = new SPQuery();
oQuery.ExpandRecurrence = true;
oQuery.Query = @"
<Where>
<Eq>
<FieldRef Name='Name' />
<Value Type='Text'>Adrian</Value>
</Eq>
</Where>
";
gridView.DataSource = list.GetItems(oQuery);
gridView.DataBind();
但在执行时,它会引发以下问题“在所选数据源上找不到名为“姓氏”的字段或属性”。有人可以强调我的代码有什么问题吗?还是我错过了什么?因为当我使用“getDataTable()”时它工作正常,但另一方面在过滤列表时会引发列出的错误。