Frage

Ich finde einen Spletz in SharePoint 2010 und füllt die entsprechende Gitteransicht: generasacodicetagpre.

Wenn ich diese Codezeile verwende, würde es implizieren, dass es mir erlaubt, wenn Sie zusammen mit einem Rasteransicht, alle im Kleider gefundenen Elemente ansehen können.Ich muss jedoch nur bestimmte Daten aus der Liste zeigen können, daher mache ich aus diesem Grund ein termingerechtes, um die Liste mit dem folgenden Code zu filtern: generasacodicetagpre.

Nach der Ausführung erhebt er die folgende Ausgabe "Ein Feld oder eine Eigenschaft mit dem Namen" Nach Name "wurde auf der ausgewählten Datenquelle nicht gefunden".Kann jemand hervorheben, was mit meinem Code falsch ist?oder vermisse ich etwas aus?Da wann ich "Gettatatable ()" benutze, funktioniert es gut, dagegen wird dagegen beim Filtern der Liste den aufgelisteten Fehler angehoben.

update


Die ViewFields wurde aktualisiert, wie angewiesen, dennoch derselbe Fehler bleibt weiterhin bestehen Aktueller Code: generasacodicetagpre.

War es hilfreich?

Lösung

Try using SPListItemCollection.GetDataTable like this:

var dt = list.GetItems(oQuery).GetDataTable();
gridView.DataSource = dt;

When you just use list.GetItems(oQuery) as the DataSource what the GridView gets is a SPListItemCollection which it doesn't understand, but it's an IEnumerable which it understands. So now the GridView can enumerate the datasource and get its items back, these are of type SPListItem. The GridView then tries to get each column value as either a field or property of the item it processes. The is OK for ID, Title and Name as these all exists as properties on SPListItem, but there is no property SPListItem.SurName you have to use SPListItem["SurName"] but the GridView doesn't know that.

When you use list.GetItems(oQuery).GetDataTable() as the DataSource what the GridView gets is a DataTable and the GridView knows how to access the Rows and Columns of that.

Andere Tipps

Are you certain that 'Surname' is the proper internal name of the field? The internal name is what needs to be used during queries.

To quickly find out, you can easily inspect the list using powershell:

$url = "http://www.yoursharepointsite.com/mysite"
$listname = "YourListName"

$site= SPSite ($url) 
$web=$site.OpenWeb() 
$list=$web.Lists[$listname] 
$list.Fields |select ID, title, internalname
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top