I wrote a simple LinkButton adapter to generate more user-friendly href for LinkButtons, so instead of

javascript:__doPostBack(‘ctl00$ctl00$ContentPlaceHolder3$ContentPlaceHolder1$Friends1$box$FriendsRepeater$ctl00$ctl00$ActionButton’,”)
^^^^ ugly, right ? :)

you will now have: javascript: ActionButton();

Here it is:

public class LinkButtonAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter
{
public LinkButtonAdapter()
{
}

protected override void RenderBeginTag(HtmlTextWriter writer)
{
LinkButton c = (LinkButton)Control;
string key;
if( c.CommandArgument.Length == 0)
key = c.ID;
else
key = c.ID + “_” + c.CommandArgument;

Page.RegisterStartupScript( key, ““);
writer.AddAttribute( HtmlTextWriterAttribute.Href, “javascript:” + key + “();”);

base.RenderBeginTag(writer);
}
}