Этот код раньше работал в WSS 3.0 / MOSS 2007 в FeatureReceiver. FeatureActivated:
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);
}
Я пытаюсь преобразовать в SharePoint 2010, и он теперь перестал работать с:
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)
Интересно достаточно, когда я выполняю его от модульного теста, это работает, это только перестало работать в FeatureActivated. Когда я отлаживаю с Отражателем, он перестал работать на этой строке:
this.view = this.list.LightweightViews[new Guid(this.ViewGuid)];
список. LightweightViews только возвращает одно представление, представление по умолчанию, даже при том, что список. Представления возвращают всех их. При выполнении от модульного теста LightweightViews возвращает все мои представления. Я понятия не имею, что LightweightViews, как предполагается, имеет в виду, и у меня заканчиваются идеи. Кто-либо еще получил кого-либо?
Надеюсь, никто никогда не сталкивался с этой проблемой и даже не видел этот вопрос. В том случае, если у вас возникнет такая же проблема, у меня нет конкретного решения. В конце концов, это начало работать для меня (через 8 часов). Я могу рассказать вам, что я сделал прямо перед тем, как он начал работать, и, надеюсь, это поможет:
Я прошел через пользовательский интерфейс и установил представление, которое я пытался установить для веб-части представления списка, как представление по умолчанию. Я считаю, что это исправило это, и я понятия не имею, почему.
Некоторые другие замечания по проблеме:
Все, что я могу, извините. Если у вас возникла эта проблема, удачи!