Попробуйте установить его в коде, а не в разметке, в Page_Load. Предполагая, что id является promptTable (он не был указан в вашем примере), просто добавьте:
promptTable.Visible = User.IsInRole(@"DOMAIN\CMDB_CONTRIBUTE");
Предположительно, это необходимо сделать независимо от того, является ли это обратным вызовом или нет.
FWIW, @Keltex прав в том, что элемент управления не привязан к базе данных, поэтому <%# %>
не будет работать. К сожалению, синтаксис <%= %>
также не будет работать, потому что он всегда возвращает строку, и вам нужно логическое значение там. Я не мог найти другой синтаксис, который работал бы в этом случае. Возможно, вы могли бы сделать это, отключив отображение с помощью javascript, но я подозреваю, что вы не хотите, чтобы таблица отображалась на странице, если она не в правильной группе (в отличие от простого скрытия или удаления из DOM один раз на клиент). Делая это в коде, я думаю, это правильный путь.