WebPartManager.GetProviderConnectionPoints(WebPart) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Hämtar en samling ProviderConnectionPoint objekt som kan fungera som anslutningspunkter från en serverkontroll som fungerar som en provider i en webbdelsanslutning.
public:
virtual System::Web::UI::WebControls::WebParts::ProviderConnectionPointCollection ^ GetProviderConnectionPoints(System::Web::UI::WebControls::WebParts::WebPart ^ webPart);
public virtual System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection GetProviderConnectionPoints(System.Web.UI.WebControls.WebParts.WebPart webPart);
abstract member GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
override this.GetProviderConnectionPoints : System.Web.UI.WebControls.WebParts.WebPart -> System.Web.UI.WebControls.WebParts.ProviderConnectionPointCollection
Public Overridable Function GetProviderConnectionPoints (webPart As WebPart) As ProviderConnectionPointCollection
Parametrar
- webPart
- WebPart
En serverkontroll som fungerar som en provider i en anslutning.
Returer
En ProviderConnectionPointCollection som innehåller alla anslutningspunkter i providern.
Undantag
webPart är null.
Exempel
I följande kodexempel visas hur du använder GetProviderConnectionPoints metoden.
Exemplet har fyra delar:
En användarkontroll som gör att du kan ändra visningslägen på en webbdelssida.
En webbsida som innehåller två anpassade WebPart kontroller som kan anslutas och ett
<asp:webpartmanager>element.En källkodsfil som innehåller två anpassade WebPart kontroller och ett anpassat gränssnitt.
En förklaring av hur exemplet fungerar i en webbläsare.
Den första delen av kodexemplet är användarkontrollen för att ändra visningslägen. Du kan hämta källkoden för användarkontrollen från avsnittet Exempel i klassöversikten WebPartManager . Mer information om visningslägen och hur användarkontrollen fungerar finns i Genomgång: Ändra visningslägen på en webbsida.
Den deklarativa markeringen för webbsidan innehåller Register direktiv för både användarkontrollen och de anpassade kontrollerna. Det finns ett <asp:webpartmanager> element, ett <asp:webpartzone> element som ska innehålla de anpassade kontrollerna och ett <asp:connectionszone> element. Observera att koden i Page_Load metoden kontrollerar om det redan finns en anslutning och, om inte, definierar en provider, en konsument och deras respektive anslutningspunkter och lägger sedan till en ny anslutning till den uppsättning statiska anslutningar som refereras av StaticConnections egenskapen. Observera att objektet ProviderConnectionPointCollection som hämtas med hjälp GetProviderConnectionPoints av metoden sedan skickas till CanConnectWebParts metoden för att avgöra om en anslutning mellan de två kontrollerna kan skapas.
<%@ Page Language="C#" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenuCS"
Src="DisplayModeMenuCS.ascx" %>
<%@ register tagprefix="aspSample"
Namespace="Samples.AspNet.CS.Controls"
Assembly="ConnectionSampleCS"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
// Define provider, consumer, and connection points.
WebPart provider = mgr.WebParts["zip1"];
ProviderConnectionPoint provConnPoint =
mgr.GetProviderConnectionPoints(provider)["ZipCodeProvider"];
WebPart consumer = mgr.WebParts["weather1"];
ConsumerConnectionPoint consConnPoint =
mgr.GetConsumerConnectionPoints(consumer)["ZipCodeConsumer"];
// Check whether the connection already exists.
if (mgr.CanConnectWebParts(provider, provConnPoint,
consumer, consConnPoint))
{
// Create a new static connection.
WebPartConnection conn = new WebPartConnection();
conn.ID = "staticConn1";
conn.ConsumerID = "weather1";
conn.ConsumerConnectionPointID = "ZipCodeConsumer";
conn.ProviderID = "zip1";
conn.ProviderConnectionPointID = "ZipCodeProvider";
mgr.StaticConnections.Add(conn);
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<!-- Reference the WebPartManager control. -->
<asp:WebPartManager ID="mgr" runat="server" />
<div>
<uc1:DisplayModeMenuCS ID="displaymode1"
runat="server" />
<!-- Reference consumer and provider controls
in a zone. -->
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1"
runat="server"
Title="Zip Code Control"/>
<aspSample:WeatherWebPart ID="weather1"
runat="server"
Title="Weather Control" />
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<!-- Add a ConnectionsZone so users can connect
controls. -->
<asp:ConnectionsZone ID="ConnectionsZone1"
runat="server" />
</div>
</form>
</body>
</html>
<%@ Page Language="vb" %>
<%@ register TagPrefix="uc1"
TagName="DisplayModeMenuVB"
Src="DisplayModeMenuVB.ascx" %>
<%@ register tagprefix="aspSample"
Namespace="Samples.AspNet.VB.Controls"
Assembly="ConnectionSampleVB"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
Protected Sub Page_Load(ByVal sender As Object, _
ByVal e As System.EventArgs)
' Define provider, consumer, and connection points.
Dim provider As WebPart = mgr.WebParts("zip1")
Dim provConnPoint As ProviderConnectionPoint = _
mgr.GetProviderConnectionPoints(provider)("ZipCodeProvider")
Dim consumer As WebPart = mgr.WebParts("weather1")
Dim consConnPoint As ConsumerConnectionPoint = _
mgr.GetConsumerConnectionPoints(consumer)("ZipCodeConsumer")
' Check whether the connection already exists.
If mgr.CanConnectWebParts(provider, provConnPoint, _
consumer, consConnPoint) Then
' Create a new static connection.
Dim conn As New WebPartConnection()
conn.ID = "staticConn1"
conn.ConsumerID = "weather1"
conn.ConsumerConnectionPointID = "ZipCodeConsumer"
conn.ProviderID = "zip1"
conn.ProviderConnectionPointID = "ZipCodeProvider"
mgr.StaticConnections.Add(conn)
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>ASP.NET Example</title>
</head>
<body>
<form id="form1" runat="server">
<!-- Reference the WebPartManager control. -->
<asp:WebPartManager ID="mgr" runat="server" />
<div>
<uc1:DisplayModeMenuVB ID="displaymode1"
runat="server" />
<!-- Reference consumer and provider controls
in a zone. -->
<asp:WebPartZone ID="WebPartZone1" runat="server">
<ZoneTemplate>
<aspSample:ZipCodeWebPart ID="zip1"
runat="server"
Title="Zip Code Control"/>
<aspSample:WeatherWebPart ID="weather1"
runat="server"
Title="Weather Control" />
</ZoneTemplate>
</asp:WebPartZone>
<hr />
<!-- Add a ConnectionsZone so users can connect
controls. -->
<asp:ConnectionsZone ID="ConnectionsZone1"
runat="server" />
</div>
</form>
</body>
</html>
Den tredje delen av exemplet är källkoden för kontrollerna. Du kan hämta den här koden och instruktioner för att kompilera den från avsnittet Exempel i klassöversikten WebPartManager .
När du har läst in webbsidan i en webbläsare klickar du på listrutan Visningsläge och väljer Anslut för att växla sidan till anslutningsläge. I anslutningsläget används elementet <asp:connectionszone> för att du ska kunna skapa anslutningar mellan kontroller. I anslutningsläge klickar du på nedåtpilen i namnlisten på postnummerkontrollen för att aktivera verbmenyn och klickar sedan på Anslut. När anslutningsanvändargränssnittet (UI) visas bör du observera att en anslutning redan har skapats av koden i Page_Load metoden. Om du återgår till den här sidan i en senare webbläsarsession kommer den här statiska anslutningen redan att upprättas och behöver inte återskapas varje gång sidan läses in.
Kommentarer
En webbdelsanslutning omfattar alltid exakt två kontroller, den ena fungerar som dataleverantör, den andra fungerar som konsument av data. Varje kontroll måste ha en eller flera metoder som definieras som anslutningspunkter. När det gäller en providerkontroll är ProviderConnectionPoint dess anslutningspunkter objekt.
En provider måste alltid ha minst en anslutningspunkt för att kunna upprätta en anslutning. Metoden GetProviderConnectionPoints kontrollerar en providerkontroll och hämtar en samling av alla dess anslutningspunkter. Att hämta provideranslutningspunkterna är ett nödvändigt steg för att skapa en webbdelsanslutning.