Поле Sharepoint не найдено исключение
Я запрашиваю SPList в sharepoint 2010 и заполняю соответствующий вид сетки:
<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()", он работает нормально, но, с другой стороны, при фильтрации списка возникает перечисленная ошибка.
1 ответ
Попробуйте следующее:
SPListItemCollection objCollection =list.GetItems(oQuery);
gridView.DataSource = objCollection.GetDataTable();
gridView.DataBind();