动态修改asp.net页面(非母版页)的title值,测试通过[很多方法]
以下方法在VS2008+ASP.NET3.5中测试通过
方法一:使用Page.DataBind()方法
先在.CS代码文件里定义一个可以从外部访问的变量(protected或public),再绑定到该页,最后在ASPX文件的标题里调用该变量。 比如: .cs代码文件里; protected string str = "动态标题"; protected void Page_Load(object sender, EventArgs e) { Page.DataBind(); } .aspx代码里: <title><%#str %></title>
这样就可以了,你还可以在Page_Load修改定义的str,可以实现许多功能。
方法二:绑定变量改变页面标题
//首先:在页面代码中定义 public string PageTitle; 或protected string PageTitle; //再在Page_Load()方法中初始化; protected void Page_Load(object sender, EventArgs e) { PageTitle = "这是程序更改的标题!"; } 或:public string PageTitle = "这是程序更改的标题!";
最后:在前台代码(Asp.net)中加入<%=PageTitle %>或<% Response.Write(PageTitle); %>
如:<title><%=PageTitle %></title> 或:<title><% Response.Write(PageTitle); %></title>
注:但是不能定义为private string PageTitle。因为它受保护级别限制,不可访问。
方法三:直接用脚本改变页面标题(不喜欢此方法)
protected void Page_Load(object sender, EventArgs e) { //简单的这样写: //this.Response.Write("<script language=javascript>document.title='方法1:这是程序更改的标题!'</script>"); string page_title = "这是程序更改的标题!"; this.Response.Write("<script language=javascript>document.title='" + page_title + "'</script>"); }
方法四:利用服务器控件赋值改变页面标题
Literal控件:<title><asp:Literal ID="ltlTitle" runat="server"></asp:Literal></title> 然后在后台代码中赋值即可,如: protected void Page_Load(object sender, EventArgs e) { ltlTitle.Text = "这是通过程序更改的标题!"; }
方法五:在前台给<title>加id和runat=server,在后台中通过代码赋值
在前台Asp.net中设置,如: <title id="mytitle" runat="server"></title> 然后在后台代码中赋值即可,如: protected void Page_Load(object sender, EventArgs e) { this.mytitle.Text = "这是通过程序更改的标题!"; }
方法六:在前台给title加上id,直接在后台代码中访问赋值
在前台Asp.net中设置,如:<title id="MyTitle"></title> 在后台.cs代码中: protected void Page_Load(object sender, EventArgs e) { Control htm_Con = Page.FindControl("MyTitle"); ((HtmlTitle)htm_Con).Text = "这是通过程序更改的标题!"; }
|
|