Manipulating Web Parts in ASP.Net 2.0 - Web Part Connections
(Page 4 of 4 )
To allow separate web parts on the same page to communicate with each other, you need to utilize the services of the Web part connection object. This object creates and maintains a channel of communication between two Web parts, one that is the provider, and the other the consumer. Any changes in data from a provider will be instantly updated in the consuming web part.
To set up a Web part connection, you need at least two web parts that define connection points. Connection points are possible connections for a web part that can act as a provider or a consumer. The provider implements an interface defining which properties, events, or methods that the consumer can use. This is called the communication contract.
To create a provider connection point within a web part, you need to create a function that returns an instance of the class, and tag it with the special attribute: “ConnectionProvider”. If we had a web part called CustomerInfo that displayed information about a specific customer, you could enable a connection point with the following code:
public int CustID
{
get { return custID; }
[ConnectionProvider(“CustIDProvider”, “CustIDProvider”)]
private CustomerInfo ShareCustomerInfo()
{
Return this;
}
And then we could have a web part called CustomerTickets responsible for grabbing the ID of the currently displayed customer, fetching any support tickets processed for them, and displaying them. Within that web part, we’d need the following code for a connection point:
[ConnectionConsumer(“CustIDConsumer”,” CustIDConsumer”)}
private void DisplayTickets(CustomerInfo cust)
{
this.custID = cust.custID;
// following code to retrieve info from DB, display
}
Then we could throw them both onto our page by registering the tags, and inputting the following code:
<jc:CustomerInfo runat=”server” id=”cust”
title=”Current Customer Information” />
<jc:CustomerTickets runat=”server” id=tick”
Title=”Support Tickets” />
Then we hook them together with the following (within the WebPartManager block):
<StaticConnections>
<asp:connection
ProviderID=”cust” ProviderConnectionPointID=”CustIDProvider”
ConsumerID=”tick” ConsumerConnectionPointID=”CustIDConsumer”
</StaticConnections>
And that is that! Now any time you change the customer ID in the Current Customer Information web part, the updated support ticket information is automatically retrieved and displayed in the support ticket information web part.
ConclusionThese two articles should provide enough information to allow you to get a good grasp on the usage of web parts, both simple and advanced. I must say, I don’t think Microsoft could have made it any easier for us!
| DISCLAIMER: The content provided in this article is not warranted or guaranteed by Developer Shed, Inc. The content provided is intended for entertainment and/or educational purposes in order to introduce to the reader key ideas, concepts, and/or product reviews. As such it is incumbent upon the reader to employ real-world tactics for security and implementation of best practices. We are not liable for any negative consequences that may result from implementing any information covered in our articles or tutorials. If this is a hardware review, it is not recommended to open and/or modify your hardware. |