Place two buttons on your form:
<asp:Button ID="ButtonToDisable" runat="server" Text="Button" />
<asp:LinkButton ID="PostBackLinkButton" runat="server" onclick="PostBackLinkButton_Click"></asp:LinkButton>
First one is button that will be disabled after 2 seconds, second is button that will do the postback.
Next put this code inside page.cs:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ClientScript.RegisterStartupScript(this.GetType(), "timer",
"setTimeout(function(){" + Page.ClientScript.GetPostBackEventReference(PostBackLinkButton, String.Empty) + "},2000)", true);
}
}
protected void PostBackLinkButton_Click(object sender, EventArgs e)
{
ButtonToDisable.Enabled = false;
ButtonToDisable.Text = "Button is disabled!";
}
Now just run the page and wait for 2 seconds and postback will occur and disable PostBackLinkButton.
If you don't want that postback is visible to the user place buttons inside the updatepanel.