System.Web.UI.WebControls.WebParts.ProviderConnectionPoint Class

Defines a connection point object that enables a server control acting as a provider to form a connection with a consumer.

See Also: ProviderConnectionPoint Members


public class ProviderConnectionPoint : ConnectionPoint


In every Web Parts connection between two server controls, each control must have (among other requirements) an associated connection point object that enables it to connect to the other control and to either provide or consume data, depending on whether the control is designated as the provider or consumer for the connection. A System.Web.UI.WebControls.WebParts.ConnectionPoint object in general contains the details for how a control can connect to another control and the type of data it can share. For a control acting as the provider in a connection, its connection point must be a System.Web.UI.WebControls.WebParts.ProviderConnectionPoint object. For details on Web Parts connections and connection points, see the topics listed in the See Also section below.

To create a System.Web.UI.WebControls.WebParts.ProviderConnectionPoint object, several steps are required:

[The 'ordered' type of list has not been implemented in the ECMA stylesheet.]

After a control has been equipped to act as a provider, the control can participate in connections (assuming that a consumer control is similarly equipped and available). To create a static, declarative connection in the markup of a Web page, developers can use the <asp:webpartconnection> element. If the ConnectionProvider attribute in the provider source code that identifies the callback method specifies an ID for the connection point, then that value must be assigned to the ProviderConnectionPointID attribute in the <asp:webpartconnection> element on a page. One reason that a developer might specify an ID for a provider connection point is if there are multiple connection points in the provider control. If an ID is not specified for the provider connection point in the provider control, a value does not have to be assigned to the ProviderConnectionPointID attribute in the page either, because the connection will be created using a default value obtained from the ConnectionPoint.DefaultID field.

To create a connection in code, developers must create a new System.Web.UI.WebControls.WebParts.ProviderConnectionPoint object by calling the WebPartManager.GetProviderConnectionPoints(WebPart) method and passing to it the ID of the provider control, along with the ID or index of the defined System.Web.UI.WebControls.WebParts.ProviderConnectionPoint object in the provider control. The returned System.Web.UI.WebControls.WebParts.ProviderConnectionPoint object, along with a reference to the provider control, a reference to the consumer control, and a corresponding System.Web.UI.WebControls.WebParts.ConsumerConnectionPoint object, are all passed to the WebPartManager.ConnectWebParts(WebPart, ProviderConnectionPoint, WebPart, ConsumerConnectionPoint) method to create a new System.Web.UI.WebControls.WebParts.WebPartConnection object.

Although developers can use provider connection points as part of establishing connections either declaratively or programmatically, users can also interact with provider connection points to establish connections through the user interface (UI). If developers declare a System.Web.UI.WebControls.WebParts.ConnectionsZone control on a Web page, it provides a run-time UI for users to create connections. If users choose the consumer control as the starting point for establishing the connection by clicking its connect verb (they could also choose the provider; there is no difference in the resulting connection), in the UI they will see a drop-down list control with the display name of the available provider connection point (or points if there are multiple ones). Users must select a provider connection point to create a connection.

A System.Web.UI.WebControls.WebParts.ProviderConnectionPoint object associates directly with a specific provider control, and stores details about a connection in the properties it inherits from the base System.Web.UI.WebControls.WebParts.ConnectionPoint class. For example, in the inherited ConnectionPoint.InterfaceType property, a provider connection point keeps the type of interface returned by the provider. If the provider and consumer in a connection both work with the same interface type, the controls are compatible and capable of forming a direct connection. If the provider and consumer cannot work with the same interface type, they are incompatible and must use a System.Web.UI.WebControls.WebParts.WebPartTransformer object to translate the provider connection point's ConnectionPoint.InterfaceType value into a type that the consumer can work with. Another important inherited property is the ConnectionPoint.DisplayName property, which provides a friendly name to display in the UI for users to choose a provider connection point when creating connections. The display name is the required parameter when developers add a ConnectionProvider attribute to the callback method in a provider control. The inherited ConnectionPoint.ID property is also useful, as indicated above, because it provides a unique identifier for a provider connection point in the event that a provider has multiple connection points. A provider can have multiple System.Web.UI.WebControls.WebParts.ProviderConnectionPoint objects defined in it, and in this case, when developers add the ConnectionProvider attribute to a method, they should specify an ID value to distinguish each connection point. One other notable inherited property is the ConnectionPoint.AllowsMultipleConnections property, which indicates whether a provider connection point can connect simultaneously to multiple consumers. This property value is true by default for provider connection points (whereas it defaults to false for consumer connection points).

The System.Web.UI.WebControls.WebParts.ProviderConnectionPoint class adds several unique methods to the members it inherits from the System.Web.UI.WebControls.WebParts.ConnectionPoint class. The ProviderConnectionPoint.GetObject(System.Web.UI.Control) method retrieves an instance of the interface that the callback method will return to consumers. The ProviderConnectionPoint.GetSecondaryInterfaces(System.Web.UI.Control) method retrieves additional consumer interfaces that are part of an existing connection, but are not the interfaces used to establish the connection.


Namespace: System.Web.UI.WebControls.WebParts
Assembly: System.Web (in System.Web.dll)
Assembly Versions:
Since: .NET 2.0