Saber la plantilla actual GridView
Al parecer no estaba tan clara la pregunta...
Lo dije.... va a depender de los datos de entrada o de salida, el estilo (platilla) que se carga en el gridview.
"si la tabla esta vacia"
No... como lo planteaste... "es que según que plantilla se carga muestro unos controles o no"
Siempre va a depender de datos de entrada o salida.
Bueno...
Para saber que plantilla se carga, accede al numero de filas del gridview... si es cero, se carga la emptydatatemplate.
Lo que tendrás que hacer, es en el page load, ejecutar un databind al gridview (Para traer los resultados, pues deben estar antes), luego del databind, una verificación del numero de filas devueltas en el gridview, luego un IF... si este numero de filas del gridview es mayor a 0, trabajar con esos controles, sino, omitirlos.
Quizá seria útil que señalaras siempre la mayor cantidad de datos, pues el error de que no encuentra esos controles suele producirse al renderizar la pagina, pues si el gridview devuelve datos, la emptydatatemplate no se crea, y es ahí donde esos controles no existirán.
Yo lo hago de otra manera.
Los ingresos de datos los hago en un panel aparte.
Como el ingreso de datos siempre debe estar, la emptydatatemplate la utilizo para mostrar un mensaje tipo "No hay resultados para la consulta elegida"
Si hay datos, se muestran los datos, y el panel de ingreso sigue ahi.
Es mas, si lo quieres hacer mas profesional, has ese panel del tipo emergente, que lo lanzas con un icono o botón de manera que el usuario siempre prueda tener el panel de ingreso solo cuando lo necesite a voluntad.