IListProvider.ListReady Event

NOTE: This API is now obsolete.

Occurs when the entire list has been retrieved and is ready to be sent to a Web Part that implements the IListConsumer interface.

Namespace:  Microsoft.SharePoint.WebPartPages.Communication
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

[ObsoleteAttribute("Use System.Web.UI.WebControls.WebParts.IWebPartTable instead")]
event ListReadyEventHandler ListReady

The event handler receives an argument of type Microsoft.SharePoint.WebPartPages.Communication.ListReadyEventArgs containing data related to this event. The ListReadyEventArgs.List property provides information specific to this event.

The ListReady event should also be raised when the provided list changes (for example, when an addition, deletion, update of a row, or a filter change occurs).

The following code example overrides the PartCommunicationMain method and fires the ListReady event. This code example is part of a larger example provided for the IListProvider interface.

// Step #8: Override the PartCommunicationMain method.
// The PartCommunicationMain method is called by the Web Part 
// infrastructure on the client during the ASP.NET PreRender
// event to allow the part to pass its primary data to the other 
// connected parts. 
// It is important to always fire the ListReady or PartialListReady 
// event. Some parts may not behave properly if they are left waiting 
// for this information.
public override void PartCommunicationMain()
{
    // Ensure that all of the Web Part's controls are created.
    EnsureChildControls();

    //Check if connected
    if(_connected)
    {
        // If there is a listener, fire the ListReady event.
        if (ListReady != null)
        {
            // Create the ListReadyEventArgs object for the 
            // ListProviderInit event.
            ListReadyEventArgs listReadyArgs = new ListReadyEventArgs();

            // If user clicked button, send the value.
            if (_listButtonClicked)
            {
                // Set the List to the value of the table in the 
                // DataGrid.
                // This is the value that will be sent to the consumer 
                // Web Part.
                listReadyArgs.List = ((DataTable)_dataGrid.DataSource);
            }
            else
            {
                // The user didn't click the button, so send a
                // null DataTable to the consumer Web Part.
                listReadyArgs.List = null;
            }

            // Fire the ListReady event.
            // The consumer Web Part will receive the DataTable.
            ListReady(this, listReadyArgs);
        }
    }
}

Show: