Javascript ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?
好吧,我对动态创建的控件的ID很困惑Javascript ID vs UniqueID vs ClientID vs UniqueClientID vs StaticClientID?,javascript,asp.net,ajax,vb.net,dom,Javascript,Asp.net,Ajax,Vb.net,Dom,好吧,我对动态创建的控件的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
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 extender,我应该使用哪个模式/ID组合?使用ClientID属性
ClientIDMode支持100%设置控件使用或不使用的实际ID。你的选择。基本上,它有助于编写javascript代码。ClientIDMode被添加到ASP.NET 4中,以便在需要时进行控制。它对于客户端库(如jQuery)特别有用。NET的神奇之处在于控件的独特性。如果您决定使用Static,请确保它们是唯一的,因为您可能会遇到一些意外的运行时错误。
- ID是您在代码中使用的服务器端ID
- UniqueId对应于生成的HTML元素的“name”属性李>
- ClientID对应于生成的html元素的“id”属性。所以这取决于您需要哪个属性(名称随表单post一起发送,id用于DOM操作)
- 不确定uniqueclientid是什么:)
ASP.NET4添加了clientIdMode,如果将id属性设置为“静态”,则可以强制id属性与服务器端id匹配(从而更容易预测).如果您不关心abt ID,为什么首先要添加它们?我认为.NET的MSDN文档与SharePoint相比非常好。例如,应该注意的是,在后面的代码中,
ClientID
和UniqueID
都是getter和readonly,而ID
是读写和可设置的。