现在的位置: 首页 > 综合 > 正文

笔记 C# 实现后台 动态加载 页面标题 Dynamic Load Page Title

2011年03月06日 ⁄ 综合 ⁄ 共 2049字 ⁄ 字号 评论关闭

和以前的asp不同,在asp.net中为了彻底的代码分离,我们一般不采用<%=%>嵌入标签中来设置一些属性和内容。

一般来说有2种情况:

(一)设置标签的内容,比如<title>这里</title>

(二)设置标签的属性,比如<body bgcolor=这里>

(三)动态加载一些script

先看一下(一)和(二):

前台

<title id="mytitle" runat="server"></title>

<body id="mybody" runat="server">


后台

protected HtmlGenericControl mytitle;

protected HtmlGenericControl mybody;

this.mytitle.InnerText="test";

this.mybody.Attributes["bgcolor"]="#cccccc";


这里说明3点:

(1)前台标签runat=server是必须的

(2)HtmlGenericControl的命名空间是System.Web.UI.HtmlControls

(3).InnerText和.InnerHtml是有区别的

比如:

前台

<span runat="server" id="myspan"></span>

后台

this.myspan.InnerText="<b>test</b>"

得到的结果是

<span id="myspan">&lt;b&gt;test&lt;/b&gt;</span>

把后台改为

this.myspan.InnerHtml="<b>test</b>"

得到的结果是

<span id="myspan"><b>test</b></span>

再来看看动态加载一些script

一般来说有三种情况

(1)在前台放置<asp:Literal Runat="server"></asp:Literal>指定位置输出

(2)后台通过RegisterStartupScript和RegisterClientScriptBlock输出

(3)Response.Write输出

举例如下

(1)

前台

<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>

后台

this.myLiteral.Text+="<script>alert('test');</script>";

查看源代码可以看到原来的

<asp:Literal ID="myLiteral" Runat="server"></asp:Literal>

位置变成了

<script>alert('test');</script>

(2)

为了更加清楚看到两个的区别,前台如下

<form id="Form1" method="post" runat="server">

<input type="hidden" value="test" id="myhiden">

</form>


后台如下

Page.RegisterStartupScript("","<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>");

Page.RegisterClientScriptBlock("","<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>");


结果如下:只出现对话框显示RegisterStartupScript:test

查看源代码如下:

<form name="Form1" method="post" action="WebForm4.aspx" id="Form1">

<input type="hidden" name="__VIEWSTATE" value="dDwtNjU0MzcyMTk1Ozs+NmbLf6dWkF/Q/FLKKsdPPfhFXr0=" />

<script>alert('RegisterClientScriptBlock:'+document.all.myhiden.value)</script>

<input type="hidden" value="test" id="myhiden">

<script>alert('RegisterStartupScript:'+document.all.myhiden.value)</script>

</form>


两者区别不用多说了吧

(3)

我们再加一句Response.Write("test")

查看源代码发现test字样出现在最前面

test

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

用它来输出转向代码比较合适

<script>location.href='page.aspx'</script>

【上篇】
【下篇】

抱歉!评论已关闭.