 <p>In asp.net version 4 this 'hack' action of postback does not work because of the extra security checks that version 4 includes. The best way to do this using asp.net controls is to do a dynamic load of the controls. Here is some code that I have just checked and working.</p> <pre><code>protected void Page_Load(object sender, EventArgs e) { // create the control dynamically LinkButton lbOneMore = new LinkButton(); // the text and the commands lbOneMore.Text = "One more click"; lbOneMore.CommandArgument = "cArg"; lbOneMore.CommandName = "CName"; // the click handler lbOneMore.Click += new EventHandler(lbOneMore_Click); // and now add this button link to your div DivControl.Controls.Add(lbOneMore); } // here you come with the click, and the sender contains the commands void lbOneMore_Click(object sender, EventArgs e) { txtDebug.Text += "&lt;br&gt; Command: " + ((LinkButton)sender).CommandArgument; } </code></pre> <p>On asp.net page :</p> <pre><code>&lt;div runat="server" id="DivControl"&gt;&lt;/div&gt; &lt;asp:Literal runat="server" ID="txtDebug" /&gt; </code></pre>