1.值得注意的是,HtmlInputButton控件可以执行服务器端的click事件,需要注明是 onserverclick,默认的onclick事件是客户端事件
web服务器控件正好相反,onclick 事件是服务端事件,要执行客户端事件要注明是OnClientClick.
2.在使用HTML服务器控件(Web服务器控件一样),请注意区分ClientID与UniqueID的区别,在母版页、自定义控件和控件嵌套中需要特别注意他们的含义和使用方法。
以下例子描述了这些表好似的含义和规则。






























































运行上面的程序,查看客户端生成的源代码,可以发现,虽然给按钮指定了ID属性和name属性,但是客户端的ID和name并不是
我们指定的,源代码如下:



HtmlInputControl 的 Name 属性值:Repearter1$ctl002$Submit1;
HtmlInputControl 的 ID 属性值:Submit1;
HtmlInputControl 的 UniqueID 属性值:Repearter1$ctl002$Submit1;
HtmlInputControl 的 ClientID 属性值:Repearter1_ctl002_Submit1;
HtmlInputControl 的 NamingContainer的UniqueID 属性值:Repearter1$ctl002;
HtmlInputControl 的 NamingContainer的ParentID 属性值Repearter1:
因此,在编写客户端的程序时,不要用指定的ID值在客户端引用对象,一定要用该对象的ClientID属性传递到客户端的引用。
从上面的例子还可以看到,Name属性和UniqueID属性的命名规则是以“$”分割开来,而ClientID属性是以“_”分割开来,
Repeater1和ctl001等这个都是什么意思呢?如果在页面指令中把Trace=true,就可以看到ASP.NET在解析页面时的控件树
图,命名规则是以命名容器(NamingContainer)控件的ID和该控件ID的值链接而成(注意:不一定是父控件的ID)。服务器
控件的UniqueID会呈现客户端的name属性中,ClientID会呈现到客户点的id属性中。对于需要通过Request.Form的形式获
得客户端数据的情况,掌握这个属性非常重要。
