ASP: runat = server para control dinámico

En el método Page_Load, creo un par de controles, basados ​​en varias condiciones. Me gustaría registrar el código del lado del servidor con esos controles. Sin embargo, para la última parte necesito declarar mis controles como controles de servidor. Esto normalmente se realiza mediante runat = server, pero no sé cómo establecer este atributo en el código C #. myControl.Attributes.Add ("runat", "server") no hace el truco. Éste funciona, lo que significa que se llama al método de "prueba" cuando hago clic en él:

<asp:LinkButton ID="LinkButton1" runat="server" OnClick="test">testtext</asp:LinkButton>

Este no funciona:

            LinkButton lb = new LinkButton();
            lb.ID = "LinkButton1";
            lb.OnClientClick = "test";
            lb.Text = "testtext";
            lb.Attributes.Add("runat", "server");

Puedo hacer clic en él y la página está cargada, pero no se llama al método de prueba.

¿Alguna pista?

Respuestas a la pregunta(4)

Su respuesta a la pregunta