Antes que otra cosa cabe aclarar que no es lo mismo un campo de tipo hidden que un control en modo invisible.
La diferencia es que un campo hidden puedes accesar desde el cliente a la información y un control invisible accesas a el desde el server.
En fin... va a depender mucho de lo que necesitas hacer... pero por lo regular lo que yo hago es declarar un input de tipo hidden pero con el runat=server para que pueda recuperar su valor tanto en client-side como en server-side
algo así:
Cita: <input type=hidden runat=server id=txtHidden>
saludos y cualquier duda por aqui andamos.