【发布时间】:2011-11-03 23:39:55
【问题描述】:
好吧,我对动态创建的控件的 ID 感到很困惑。
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??
什么时候应该使用不同的 ID 模式?
(我阅读了 MSDN 文档,但和往常一样,它们并不是特别有启发性。)
如果我不关心 什么 ID 是什么,只想添加一个控件并将其 ID 提供给动态添加的 AJAX 扩展器,我应该使用哪种模式/ID 组合? p>
【问题讨论】:
-
如果您不关心 abt id 为什么要首先添加它们
-
我认为 .NET 的 MSDN 文档与...SharePoint 相比非常好
标签: javascript asp.net ajax vb.net dom