ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?

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

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 разных идентификаторов ??

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

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

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

8
задан J.Steve 25 August 2011 в 20:13
поделиться