动态改变ASP.net页面标题和动态指定页面样式表

         如果需要让asp.net应用程序对用户留有一定有自定义空间,例如用户要对页面使用自己定义的样式表或标题,可以使用下面的方法来动态指定:
首先对ASPX文件中<HEAD>中的页面标题和样式表进行修改
Visual Studio 生成的代码:
    <title>WebForm1</Title>
    <LINK ref="stylesheet" type="text/css" href="control.css">
修改后的代码:
    <title runat="server" id="Title1">WebForm1</title>
    <LINK id="link1" runat="server" type=text/css" ref="stylesheet"></link>
我们将这两个HTML元素都加上runat=server,标记为服务器端控件以使我们能在服务器代码对其进行访问。

在WebForm1.aspx.cs文件,我们就可以使用C#代码来对其将行控制
private void Button1_Click(object sender,System.EventArgs e)
{
        Control ctrl=Page.FindControl("Title1");  //寻找我们刚才修改为runat=server的那个Title
        ((HtmlGenericControl)ctrl).InnerText="Hello";
        ctrl=Page.FindControl("link1");
         ((HtmlGenericControl)ctrl).Attributes.Add("href","control.css");

}

通过以上步骤即可实现动态改变ASP.net页面标题和动态指定页面样式表
posted on 2006-02-22 15:56 lcybest 阅读(1383) 评论(3) 编辑 收藏

评论

#1楼 2006-02-24 12:33 SysInfo        回复 引用 查看   

事实上,你根据都不用这么findcontrol()的.
直接,this.TitleName.innerText="";即可.

或者在.cs中public static string titleInfo="";
然后在.aspx中<title><%=titleInfo%></title>

不是更简单?

呵呵

#2楼[楼主] 2006-02-24 13:06 梁风飚        回复 引用 查看   

当然可以在aspx里面实现,我以前也是在aspx里面实现的,这里只不过是一种在C#代码中控制的一种方法 :)

#3楼 2006-06-20 14:50 mfmao[未注册用户]  回复 引用   

恩,好方法!
比方说文章的内容部分是个自定义控件,要根据这个自定义控件来动态生成标题。
那如果直接用:<title><%=titleInfo%></title>;
则明显没有用((HtmlGenericControl)ctrl).InnerText="Hello";
来的方便了。