Поле 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();
Другие вопросы по тегам