onet.xml で Web パーツ接続を指定する必要があります。したがって、このサイト定義を使用してサイトが作成されると、前述の Web パーツは既に接続されており、使用する準備ができています。その特定の Web パーツに対して、onet.xml でどのプロパティを指定する必要があるか。
1902 次
3 に答える
3
私も昨年、これで壁にぶち当たりました!古い .dwp 形式の場合とは異なり、新しい .webpart 形式の Web パーツでは接続を指定できなくなったようです。kpinhack も示唆するように、サイト定義にカスタム機能を含めることになりました。Web パーツを接続するためのコードを以下に示します。このメソッドは、異なる種類の 2 つの Web パーツを接続するように設計されています。同じページで同じ種類の複数の Web パーツをサポートしていません。しかし、私はあなたが一般的な考えをつかむと確信しています.
private void ConnectWebParts(SPWeb web, string pageName, Type providerType, Type consumerType)
{
SPFile file = web.GetFile(pageName);
SPList list = null;
if (file.InDocumentLibrary)
{
list = file.Item.ParentList;
if (list.ForceCheckout) file.CheckOut();
}
SPLimitedWebPartManager webPartManager =
web.GetLimitedWebPartManager(
pageName,
System.Web.UI.WebControls.WebParts.PersonalizationScope.Shared);
WebPart provider = null;
foreach (WebPart wp in webPartManager.WebParts)
{
if (wp.GetType() == providerType)
{
provider = wp;
break;
}
}
foreach (WebPart consumer in webPartManager.WebParts)
{
if (consumer.GetType() != consumerType) continue;
ProviderConnectionPointCollection providerConnections = webPartManager.GetProviderConnectionPoints(provider);
ProviderConnectionPoint providerConnection = providerConnections[0];
ConsumerConnectionPointCollection consumerConnections = webPartManager.GetConsumerConnectionPoints(consumer);
ConsumerConnectionPoint consumerConnection = consumerConnections[0];
SPWebPartConnection con = webPartManager.SPConnectWebParts(provider, providerConnection, consumer, consumerConnection);
webPartManager.SPWebPartConnections.Add(con);
}
if (list != null)
{
if (list.ForceCheckout)
{
file.CheckIn("Added Web Part Connections");
}
if (list.EnableVersioning && list.EnableMinorVersions)
{
file.Publish("Added Web Part Connections");
}
}
}
于 2009-06-26T20:46:58.297 に答える
0
<AllUsersWebPart>タグを使用してWebパーツを宣言してから、囲まれた<WebPart>要素内で接続を宣言する必要があります。
于 2009-06-26T21:08:44.790 に答える
0
'OnActivated'-Eventhandlerを実装することにより、SiteProvisioning-FeatureでWebパーツを構成します。そうすれば、Webサイトの作成時にコードが実行され、エラーを好きなように処理できます(つまり、Webサイトの作成時にWebパーツが利用できない場合-何らかの理由で)
これがお役に立てば幸いです。
于 2009-06-26T12:33:43.480 に答える