(в дополнение к моему первоначальному ответу выше)
Ну, как вы, наверное, знаете, UniqueID используется с атрибутом name, а ClientId с атрибутом id визуализированного HTML-тега. UniqueID использует двоеточие в качестве разделителя. С другой стороны, ClientId использует подчеркивание в качестве разделителя, потому что двоеточие не допускается в именах переменных JavaScript. ClientID действительно также уникален на странице, как и UniqueID, но ClientID нацелен на обработку на стороне клиента и UniqueID для на стороне сервера (что довольно очевидно), последнее особенно для маршрутизации данных обратной передачи и событий с составными элементами управления
Однако я думаю, что некоторые причины могут заключаться в том, что использование подчеркивания в качестве разделителя в обычных идентификаторах управления является довольно распространенным поведением, и поэтому подчеркивание не может использоваться в UniqueID в качестве разделителя управления (если бы мы теоретически думали об управлении с одним свойством), потому что вы не могли не делать различий между элементами управления. С другой стороны, по той же причине вы не можете использовать двоеточие в идентификаторах элементов управления, Page Framework не допускает этого, так что он гарантирует, что двоеточия не смогут получить ClientID (это было из-за того, что JavaScript не нравится) .
И по этим причинам двоеточие является довольно хорошим выбором для использования в UniqueID, потому что метод FindControl может использовать его для навигации по дереву элементов управления и определения местоположения элементов управления (он может легко разделить UniqueID).