用户控件与页面的区别:
1.扩展名:.ascx .aspx
2.内容:页面完整的HTML标记,用户控件没有完整的HTML标记
3.声明指示符:页面<%@ Page ...%> 用户控件<%@ Control ...%>
4.类的派生:页面派生自Page 用户控件派生自UserControl
5.页面可以独立运行,但用户控件不能,它只能放在页面中才能运行。
用户控件的好处:
1.代码重用。
2.分工开发。
3.结构良好。
难点:
一、交换信息
(一)从外向内操作——在页面中操作用户控件里面的控件
1.事先给用户控件定义属性,通过属性实现给用户控件赋值。
2.使用用户控件对象的FindControl()方法找到它里面的控件,强制转换出来,对它进行操作。
(二)从内向外操作——在用户控件中操作它所在的页面的控件。
二、路径
(一)标签/控件路径:使用带有runat=server的标记。
(二)样式表的路径:使用外部样式表。
(三)外部脚本文件的路径:使用ResolveClientUrl()来动态转换路径。
<script src="<%=ResolveClientUrl("Script/JavaScript.js")%>"></script>
三、命名
任何带有runat=server的标签/控件,放到用户控件中后,在生成的HTML中,它的ID和Name都会发生一些变化。
如何在JS中,获得它们生成出来的HTML中的ID,Name到底是什么?
var t = document.getElementById("<%= TextBox1.ClientID %>");
Web标准控件的ID,ClientID,UniqueID区别?
ID - 设计时候的控件的ID。控件的这个对象的变量名。
ClientID - 运行呈现为HTML后的ID名。
UniqueID - 运行呈现为HTML后的Name名。