2013-12-19 17 views
0

我查詢在2010年的SharePoint一個SPList和填充相應的網格視圖:的SharePoint字段未發現異常

<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(); 

但在執行時它提出了以下問題 「未在所選數據源中找到名稱爲「Surname」的字段或屬性「。有人可以突出顯示我的代碼有什麼問題嗎?或者我錯過了什麼?因爲當我使用「getDataTable()」時,它工作正常,但另一方面在過濾列表時引發列出的錯誤。

回答

0

嘗試以下操作:

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