ClientIDMode был добавлен в ASP.NET 4, чтобы разрешить контроль, если вы этого хотите. Это особенно полезно для библиотек на стороне клиента, таких как jQuery. Магия ASP.NET зависит от уникальности элементов управления. Если вы решили использовать Static, убедитесь, что они уникальны, поскольку в будущем вы можете столкнуться с неожиданными ошибками во время выполнения.

, я довольно озадачен идентификаторами динамически создаваемых элементов управления.

Public Class TestClass
    Inherits Panel
    Implements INamingContainer

    Function TestClassInit() Handles Me.Init

        Dim pnlMainPanel As New Panel
        Me.Controls.Add(pnlMainPanel)

        Dim pnlTest1 As New Panel
        pnlMainPanel.Controls.Add(pnlTest1)

        pnlTest1.ClientIDMode = UI.ClientIDMode.Inherit ' DEFAULT
        'pnlTest1.ID = "ctl01"
        'pnlTest1.UniqueID = "ctl00$MainPanel$ctl01"
        'pnlTest1.ClientID = "MainPanel_ctl01"
        'pnlTest1.UniqueClientID = "ctl00_MainPanel_ctl01"
        'pnlTest1.StaticClientID = ""

        pnlTest1.ClientIDMode = UI.ClientIDMode.Predictable
        'pnlTest1.ClientID = "MainPanel_ctl01" (no change)

        pnlTest1.ClientIDMode = UI.ClientIDMode.AutoID
        'pnlTest1.ClientID = "ctl00_MainPanel_ctl01"

        pnlTest1.ClientIDMode = UI.ClientIDMode.Static
        'pnlTest1.ClientID = ""

    End Function
End Class

Почему 5 разных идентификаторов?

Когда следует использовать разные режимы идентификации?

(Я читал документы MSDN, но они, как обычно, не особенно освещали.)

Если мне все равночто Идентификатор есть, и я просто хочу добавить элемент управления и присвоить его идентификатор динамически добавляемому расширителю AJAX. Какой режим / комбинацию идентификаторов следует использовать?

Ответы на вопрос(3)

Ваш ответ на вопрос