You can place a hidden button inside your updatepanel and do a PostBack to that button.
Is not an elegant solution but it works fine.
Inside your updatepanel you will write something like this.
<div style="visibility:hidden">
<asp:Button ID="btnLoad" OnClick="btnLoad_Click" runat="server"/>
</div>
On your Page_Load event you must register the script for the PostBack:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "InitialLoad" + this.ClientID, Page.ClientScript.GetPostBackEventReference(btnLoad, "")+";", true);
}
}
Then you can write the code that will be executed on startup in the btnLoad_Click method (OnClick event for the button).
I tried another approach using a AJAX Timer and disabling it on the first Tick but sometimes I receive more than one tick before the code behind is executed, so I discarded that solution.