合中总共有多少个控件。
下面是一个PlaceHolder控件用法的例子,为了简单起见,我没有采用代码和页面分离的模式,代码如下:
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <script runat="server"> protected void Page_Load(object sender, EventArgs e) { Button btn = new Button(); btn.Text = "动态添加的控件"; btn.Click += new EventHandler(btn_Click);//给动态添加的Button的单击事件增加服务器端方法 PlaceHolder1.Controls.Add(btn); } public void btn_Click(object sender, EventArgs e) { Literal l = new Literal(); l.Text = "PlaceHolder1控件总共容纳了" + PlaceHolder1.Controls.Count + "个控件"; PlaceHolder1.Controls.Add(l); } </script> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div> <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</div> </form> </body> </html>
程序的运行结果:
点击按钮之后的效果:
在没有点击按钮之前客户端浏览器得到的HTML代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head><title> 无标题页 </title></head> <body> <form name="form1" method="post" action="PlaceHolderDemo.aspx" id="form1"> <div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUKLTM2NTY5NjE1NWRkDxPVOfW9ygVx0MnTmn1nNCXGfWY=" /> </div> <div> <input type="submit" name="ctl02" value="动态添加的控件" />PlaceHolder1控件总共容纳了1个控件
</div>
<div> <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWAgLhoKDXAwKfwImNCxlfxrs8MWJR7ujk/rFzZ1UfCrph" /> </div></form> </body> </html>
小结:Panel和PlaceHolder作为控件的容器,在很多地方是相似的,不同的是PlaceHolder不会在客户端产生任何可见的输出,而Panel还可以设置背景图片等。
Label和Literal控件常用来显示文字(也可以成为文本的容器哦),在很多地方是相似的,不过不能设置Literal的客户端css样式,并且Literal对显示的文本的控制能力更灵活一些,利用Mode属性可以方便地显示HTML代码。
下一篇文章讲述ADO.NET对象,在这篇文章里将讲述如何防范SQL注入。 |