欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

ASP.NET动态设置页面标题的方法详解

程序员文章站 2024-02-29 09:20:16
  asp.net为我们提供了一个控件类:system.web.ui.htmlcontrols.htmlgenericcontrol。它可以实现html的元素的一...

  asp.net为我们提供了一个控件类:system.web.ui.htmlcontrols.htmlgenericcontrol。它可以实现html的元素的一个实例,比如在.cs代码中控制aspx中的<td>元素(注意,它不是<asp:tablecell>)。我们知道,页面标题是被包含在<title></title>中的,而<title>也是一个html的元素,所以,我们就可以利用system.web.ui.htmlcontrols.htmlgenericcontrol来控制<title>了。
  asp.net中,如果想在.cs中控制aspx的一个元素(不论这个元素是web控件还是html控件),那么这个元素的runat属性必须设置成server,也就是说,只有元素的runat属性设置成server后,在.cs中才可以控制这个元素(当然,这个元素必须设置id的)。

  现在我们着手试试,在aspx文件的html代码中,更改<title>元素为:

复制代码 代码如下:

    <title runat="server" id="titlecontrol">default title</title>

  注意一定要设置runat="server"和id(id很重要,并且注意大小写)。这里的default title是默认的标题,你不改标题时,就显示default title.
  转到.cs文件,声明一个变量titlecontrol,类型为system.web.ui.htmlcontrols.htmlgenericcontrol:
复制代码 代码如下:

    protected system.web.ui.htmlcontrols.htmlgenericcontrol titlecontrol;

  这样,titlecontrol就是<title>了。要改变标题就可以在.cs方法中(比如:page_load)加入:

    titlecontrol.innertext=“我把标题给改了!”;

  其实对于system.web.ui.htmlcontrols.htmlgenericcontrol控件可以作为所有的html控件在服务器端的表现,也就是说只要在后台代码(.aspx.cs/.aspx.vb)中声明一个与前端的html控件id相同的system.web.ui.htmlcontrols.htmlgenericcontrol控件对象就可以,并要注意前端的html控件的属性中要加上一句runat="server",要不然后,后台代码是不会对前端html控件执行操作的。

  也可以<title></title>之间加入literal控件,效果一样!