Introducción
Tomando como base las diferentes propuestas presentadas por Ken Walker, Mike Dolan y Scott Michell, en la que la mayoría de estas y otras soluciones ocurre que cuando existen columnas tipo BoundColumn
o TemplateColumn
que contienen controles tipo Button
, LinkButton
, CheckBox
o Controles Web
que necesitan ser puestos dentro de un formulario del lado del servidor, aquellos que pueden provocar un PostBack
, mandan un error que dice: "Control ControlID" del Tipo ‘TipoControl" debe estar dentro de un etiqueta form con el atributo runat=server
, esto sucede porque el método RenderControl()
aplicado al DataGrid (utilizado en la mayoría de las propuestas vistas) invoca recursivamente el mismo método pero de cada control visible que existe en el DataGrid
. Este método invoca a otro método que es el Page.VerifyRenderingInServerForm()
, la función de éste último es que verifica que un control es generado después de que el formulario del lado del servidor ha empezado ha generarse, pero antes de que éste termine de generarse.