Sharepoint字段未找到异常

时间:2013-12-19 14:20:15

标签: asp.net sharepoint gridview sharepoint-2010 splist

我在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中找到的所有项目。 但我需要能够仅显示List中的特定数据,因此我使用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();

在执行时它引发了以下问题 &#34;名称为&#39; Surname&#39;的字段或属性未在所选数据源上找到&#34;。有人可以突出我的代码有什么问题吗?还是我错过了什么?因为当我使用&#34; getDataTable()&#34;它工作正常,但另一方面,在过滤列表时,会引发列出的错误。

1 个答案:

答案 0 :(得分:0)

尝试以下方法:

SPListItemCollection objCollection =list.GetItems(oQuery);
gridView.DataSource = objCollection.GetDataTable(); 
gridView.DataBind();