Diesen Code in WSS verwendete 3.0/MOSS 2007 in FeatureReceiver.FeatureActivated zu arbeiten:"Die angegebene Ansicht ist ungültig" im Aufruf von LimitedWebPartManager.AddWebPart in Sharepoint 2010
using (SPLimitedWebPartManager limitedWebPartManager = Site.GetLimitedWebPartManager("default.aspx", PersonalizationScope.Shared)) {
ListViewWebPart listViewWebPart = new ListViewWebPart {
Title = title,
ListName = list.ID.ToString("B").ToUpper(),
ViewGuid = view.ID.ToString("B").ToUpper()
};
limitedWebPartManager.AddWebPart(listViewWebPart, zone, position);
}
Ich versuche, auf Sharepoint zu konvertieren 2010 und es scheitert jetzt mit:
System.ArgumentException: The specified view is invalid.
at Microsoft.SharePoint.SPViewCollection.get_Item(Guid guid)
at Microsoft.SharePoint.WebPartPages.ListViewWebPart.EnsureListAndView(Boolean requireFullBlownViewSchema)
at Microsoft.SharePoint.WebPartPages.ListViewWebPart.get_AppropriateBaseViewId()
at Microsoft.SharePoint.WebPartPages.SPWebPartManager.AddWebPartInternal(SPSupersetWebPart superset, Boolean throwIfLocked)
at Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager.AddWebPartInternal(WebPart webPart, String zoneId, Int32 zoneIndex, Boolean throwIfLocked)
at Microsoft.SharePoint.WebPartPages.SPLimitedWebPartManager.AddWebPart(WebPart webPart, String zoneId, Int32 zoneIndex)
Interessanterweise, wenn ich es von einem Gerät zu testen führen sie es funktioniert, ist es nicht nur in FeatureActivated. Wenn ich mit Reflektor debuggen ist es auf dieser Linie versagt:
this.view = this.list.LightweightViews[new Guid(this.ViewGuid)];
list.LightweightViews nur eine Ansicht zurück, die Standardansicht, obwohl list.Views alle von ihnen zurück. Wenn LightweightView von einem Komponententest ausgeführt wird, gibt es alle meine Ansichten zurück. Ich habe keine Ahnung, was LightweightViews bedeuten soll und mir gehen die Ideen aus. Hat noch jemand etwas?
Diese Alternative auch für mich gearbeitet: 1. setzen Sie nicht ViewGuid, 2. AddWebPart, 3. Satz ViewGuid, 4 . Änderungen speichern – jumbo