Причина, по которой вы получаете все свои идентификаторы такими, какие вы есть, заключается в том, что у .NET Framework нет причин менять их.
Если вы поместили свои Panel в элемент управления Repeater, товсе они будут изменены, чтобы избежать нескольких идентификаторов с одинаковым именем.
Пример (неправильная разметка):
<asp:Repeater id="repeater1" runat="server">
<template>
<asp:Panel id="Panel1" runat="server">
<asp:Panel id="Panel2" runat="server">
</asp:Panel>
</asp:Panel>
</template>
</asp:Repeater>
Ваш HTML-код, сгенерированный из этого, будет показывать, что идентификаторы Panelизменено для наследования от содержащего элемента управления.Что-то вроде repeater1_ct100_Panel1
То же самое происходит, когда вы используете мастер-страницы, держатели контента и элементы управления DataBound..NET обновляет идентификаторы, чтобы избежать нескольких идентификаторов с одинаковым именем.