ASP.NET的include的用法

引言:<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

我们学过的Code分离到不同文件的方法,主要包括:

程序集.dll<inherits src>.cs<script src>.cs用户控件.ascxincludeResponse.WriteFile()

程序集.dll:这是最高级的方法,它引用的是一个被编译为ILDLL(程序集)文件。

<inherits src>.cs:用这种方法,可以先定义一个继承Page类的新类,再在ASPX/ASCX文件中加工此类。

<script src>.cs:可以把<script runat=”server”>部分分离到一个新文件。

用户控件.ascx:把一段ASP.NET代码作为一个控件引入。

include:这是今天的主题,详见下。

Response.WriteFile():他只能用于引入一段“纯客户端代码(DHTML)”,扩展名可随意。

<wrapblock><?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /><shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_s1026" style="MARGIN-TOP: 23.7pt; Z-INDEX: 1; LEFT: 0px; MARGIN-LEFT: 47.15pt; WIDTH: 387.75pt; POSITION: absolute; HEIGHT: 202.5pt; TEXT-ALIGN: left; mso-position-horizontal: absolute; mso-position-vertical: absolute" stroked="t" type="#_x0000_t75" strokeweight="1.5pt"><imagedata cropright="7023f" cropleft="5590f" cropbottom="20149f" croptop="8647f" o:title="" src="file:///F:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msoclip1/01/clip_image001.png"></imagedata><?xml:namespace prefix = w ns = "urn:schemas-microsoft-com:office:word" /><wrap type="topAndBottom"></wrap></shape></wrapblock>
实验项目描述:

我想没有什么比一个UI更说明问题了,那么这是一个什么页面呢?

这是一个典型的“上中下”结构的网页,在实作中:“页头/页脚”可能是不变的,而中部可能是变化的。

于是在实作中,如果用“include法”我们需要把三个部分离出来,单为一个文件。

之后,可以使用一个“主文件”,分别把它们三个文件include进来。

而今天,我们只是一个实验,所以我们是这样设计的:

中部为一个“主文件”,之后把上下两部分include进来。

最后,我们还会把一些关键技术进行总结。

代码实现:

【上部分文件:head.aspx


<script runat=server>

void click1 (object a,EventArgs b)

{ label1.Text=text1.Text;

label2.Text=text2.Text;}

</script>

<h1>The Softzz's New page</h1>

<p>2004-11-15</p>

Name:<asp:textbox id="text1" runat="server"/>

&nbsp;&nbsp;

Pass:<asp:textbox id="text2" runat="server"

textmode="password"/>

&nbsp;&nbsp;

<asp:button id="button1" runat="server"

Text="ClickMe" OnClick="click1"/>

<HR width="80%" SIZE="1">


【上部分文件:end.a


<script runat=server>

void click2 (object a,EventArgs b)

{ label1.Text=text3.Text;

label2.Text=text4.Text;

}

</script>

<HR width="80%" SIZE="1">

Name:<asp:textbox id="text3" runat="server"/>

&nbsp;&nbsp;

Pass:<asp:textbox id="text4" runat="server"

textmode="password"/>

&nbsp;&nbsp;

<asp:button id="button2" runat="server"

Text="ClickMe" OnClick="click2"/>

<h5><%= DateTime.Now.ToString() %></h5>

<b><p>CopyRight: SoftZZ</p></b>


【主文件:index.aspx

<%@ Page Language=C# %>

<center>

<form runat=server>

<!-- #include file="head.aspx" -->

<br/>

<p>This is a new test page.Please look at the info:</p>

<br/><br/>

User's Name:&nbsp;<b><asp:label id=label1 runat=server/></b>

<br/><br/>

User's Pass:&nbsp;<b><asp:label id=label2 runat=server/></b>

<br/><br/>

<!-- #include file="end.a" -->

</form>

</center>

关键技术·记述:

上面的例子还能说明什么呢?

l include可以把几个文件最终拼成一个文件,而作为元素的每一页,只是最后拼成的最终页的片段。

l 被拼的页、最终的页,均为ASP.NET代码容器,而非HTML文本。

l 拼页时,是按顺序的。

l 这些文件中的代码,在被拼时,只是普通文字,当最终拼成后,才会被检查/编译/报错/显示……

l 一个文件中可以多次include另一个文件。但前提是不能使“声明/定义”(标识符)部分重复(重名)

l 如果在各文件中终有“runat=server”的控件,一定要注意<form runat=”server”>的始/终位置。

l 一页中只能有一个<form runat=”server”>,就算可以设置formid也不能有多个。

l 一页中可能多次出现<script runat=”server”>,而且其都会运行在这个“最终页”显示前。
还有就是,它的运行与页面顺序无关,它是一个“代码声明块”,它的元素只会被调用后运行。

l 我们可以把<script runat=”server”>们,放在页面的任何地方,包括<form runat=”server”>内。

l include法引用文件,扩展名可随意。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值