El problema con el uso de secuencias de comandos para comprobar si está activado Javascript es que sólo se encuentra que después de la secuencia de comandos no se ha ejecutado.
Algunas soluciones intentan lo contrario: usan javascript para establecer un valor y luego proporcionan controles habilitados para Javascript si ese valor se detecta más tarde. Sin embargo, esto no funciona con las herramientas javascript, a veces habilitadas, como el complemento Firefox NoScript.
Una solución más sólida es enviar siempre el control compatible con HTML simple, y luego ejecutar javascript en la carga de la página para agregar los controladores de eventos correctos/elementos DOM adicionales/etc.
Sin embargo, no sé cómo encaja esto con el enfoque ASP.NET lleva a los controles.
Creo que tienes razón, es probablemente mejor asumir que es JS deshabilitado y luego ejecuta el script para transformar los elementos cuando llega al cliente. Gracias. – Kieron