Я создал несколько веб-узлов мастера/деталей, которые необходимо подключить. У нас есть требование, чтобы веб-сайты самостоятельно открывали и подключались к другим подключаемым веб-страницам на странице. Я дружнее это в стандартной странице ASP.NET с помощью следующего кода:SharePoint/WSS3.0: Создание статических подключений веб-страниц во время выполнения
protected override void OnLoad(EventArgs e)
{
WebPartManager manager = WebPartManager.GetCurrentWebPartManager(Page);
manager.StaticConnections.Add(new WebPartConnection()
{
ID = string.Format("WebPartConnection{0}{1}", this.ID, provider.ID),
ConsumerID = this.ID,
ConsumerConnectionPointID = "WebPartConnectableConsumer",
ProviderID = provider.ID,
ProviderConnectionPointID = "WebPartConnectableProvider"
});
}
Этот подход, однако, не работает в SharePoint. Использование версии SharePoint этих объектов приводит к общей ошибке Sharepoint:
protected override void OnLoad(EventArgs e)
{
SPWebPartManager spManager = SPWebPartManager.GetCurrentWebPartManager(Page) as SPWebPartManager;
spManager.StaticConnections.Add(new WebPartConnection()
{
ID = string.Format("WebPartConnection{0}{1}", this.ID, provider.ID),
ConsumerID = this.ID,
ConsumerConnectionPointID = "WebPartConnectableConsumer",
ProviderID = provider.ID,
ProviderConnectionPointID = "WebPartConnectableProvider"
});
}
Следующий подход работает, но и создает соединение как часть персонализации пользователя:
protected override void OnLoad(EventArgs e)
{
SPWebPartConnection connection = (from SPWebPartConnection c in spManager.SPWebPartConnections where c != null && c.Consumer == this && c.ConsumerConnectionPointID == "WebPartConnectableConsumer" && c.Provider == provider select c).FirstOrDefault();
if (connection == null)
{
try
{
ProviderConnectionPointCollection providerCollections = spManager.GetProviderConnectionPoints(provider);
ConsumerConnectionPointCollection consumerConnections = spManager.GetConsumerConnectionPoints(this);
connection = spManager.SPConnectWebParts(provider, providerCollections["WebPartConnectableProvider"], this, consumerConnections["WebPartConnectableConsumer"]);
}
catch { }
}
}
Вы можете проверить файлы журналов SharePoint или просмотра событий, чтобы увидеть, если есть более подробная информация об ошибках, которые могут помочь в устранении неполадок? –
Спасибо за предложение журнала. Я несколько новичок в разработке SharePoint, и я все еще привык к модели разработки. Я совершенно честно забыл включить подробный журнал. – etc