More Soma Please…

Developers are in a race with the Universe to create better idiot-proof programs, while the Universe is trying to create better idiots. So far the Universe is winning.

Sharepoint WebPart Lifecycle Events

This post describes the lifecycle events of a Sharepoint Connectable WebPart wih a single ViewState backed property;

On Page Load

  1. Constructor
  2. OnInit
  3. OnLoad
  4. ConnectionConsumer method is called if web part is connectable (sets the connection providers interface in the webpart)
  5. CreateChildControls
  6. OnPreRender (if your web part is connectable you would typically call the connection provider here to retrieve data)
  7. SaveViewState
  8. Render
  9. RenderChildren
  10. RenderContents

On 1st Postback
(PostBack click handler sets ViewState via public Property)

  1. Constructor
  2. OnInit
  3. CreateChildControls
  4. OnLoad
  5. PostBack click handling
  6. ConnectionConsumer method is called if web part is connectable (sets the connection providers interface in the webpart)
  7. OnPreRender (if your web part is connectable you would typically call the connection provider here to retrieve data)
  8. SaveViewState
  9. Render
  10. RenderChildren
  11. RenderContents

On 2nd Postback
(PostBack click handler sets ViewState via public Property)

  1. Constructor
  2. OnInit
  3. LoadViewState
  4. CreateChildControls
  5. OnLoad
  6. PostBack click handling
  7. ConnectionConsumer method is called if web part is connectable (sets the connection providers interface in the webpart)
  8. OnPreRender (if your web part is connectable you would typically call the connection provider here to retrieve data)
  9. SaveViewState
  10. Render
  11. RenderChildren
  12. RenderContents

Note that during the 2nd postback, LoadViewState, is called, since in the 1st postback the click handler sets the value of the ViewState backed public property.

Filed under: Software Development , ,

9 Responses

  1. [...] far as web part life cycle events go, things follow the normal web part life cycle model (see this post), however, the call to SetConnectionInterface() follows OnLoad(). This call connects the 2 web [...]

  2. [...] by platinumdogs on January 14, 2009 I’ve updated my post on Sharepoint WebPart Lifecycle events, since the previous version wasn’t that [...]

  3. Don says:

    Thanks for this post. It has helped me greatly.

  4. Ramen says:

    I am having a problem when developing a MOSS webpart where am adding a LinkButton in GridView. The LinkButtons will be clicked by the user to download files.

    1) The GridView is getting created in CreateChildControls(). Also the event handlers like OnRowCommand are mapped here.
    2) The GridView is getting populated in OnPreRender(). This is because I only have the ConnectionConsumer value at this level from which I am creating the collection to assign as datasource. So the LinkButtons within the GridView get to be created at this level.
    3) When the LinkButtons are clicked they don’t fire the OnRowCommand event. Whereas Sort/Page fires the OnRowCommand.

    Since the LinkButtons are created only at the OnPreRender level, they are not getting mapped to the parent GridView’s OnRowCommand event.

    When I moved the populating code up in CreateChildControls (using a fixed value for Connection data) the LinkButtons are firing OnRowCommand!

    Any help?

  5. myro says:

    thanks!

  6. Phil Harding says:

    Your welcome

Leave a Reply

Me

Calendar

October 2008
M T W T F S S
« Jul   Nov »
 12345
6789101112
13141516171819
20212223242526
2728293031  

Blog Stats

  • 82,804 hits