我們學(xué)過(guò)的Code分離到不同文件的方法,主要包括:
程序集.dll、inherits src>.cs、script src>.cs、用戶控件.ascx、include、Response.WriteFile()
程序集.dll:這是最高級(jí)的方法,它引用的是一個(gè)被編譯為IL的DLL(程序集)文件。
inherits src>.cs:用這種方法,可以先定義一個(gè)繼承Page類的新類,再在ASPX/ASCX文件中加工此類。
script src>.cs:可以把script runat=”server”>部分分離到一個(gè)新文件。
用戶控件.ascx:把一段ASP.NET代碼作為一個(gè)控件引入。
include:這是今天的主題,詳見(jiàn)下。
Response.WriteFile():他只能用于引入一段“純客戶端代碼(DHTML)”,擴(kuò)展名可隨意。
實(shí)驗(yàn)項(xiàng)目描述:
我想沒(méi)有什么比一個(gè)UI更說(shuō)明問(wèn)題了,那么這是一個(gè)什么頁(yè)面呢?
這是一個(gè)典型的“上中下”結(jié)構(gòu)的網(wǎng)頁(yè),在實(shí)作中:“頁(yè)頭/頁(yè)腳”可能是不變的,而中部可能是變化的。
于是在實(shí)作中,如果用“include法”我們需要把三個(gè)部分離出來(lái),單為一個(gè)文件。
之后,可以使用一個(gè)“主文件”,分別把它們?nèi)齻€(gè)文件include進(jìn)來(lái)。
而今天,我們只是一個(gè)實(shí)驗(yàn),所以我們是這樣設(shè)計(jì)的:
中部為一個(gè)“主文件”,之后把上下兩部分include進(jìn)來(lái)。
最后,我們還會(huì)把一些關(guān)鍵技術(shù)進(jìn)行總結(jié)。
代碼實(shí)現(xiàn):
【上部分文件:head.aspx】
復(fù)制代碼 代碼如下:
代碼
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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】
復(fù)制代碼 代碼如下:
代碼
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->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】
復(fù)制代碼 代碼如下:
代碼
Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->%@ 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>
關(guān)鍵技術(shù)·記述:
上面的例子還能說(shuō)明什么呢?
l include可以把幾個(gè)文件最終拼成一個(gè)文件,而作為元素的每一頁(yè),只是最后拼成的最終頁(yè)的片段。
l 被拼的頁(yè)、最終的頁(yè),均為ASP.NET代碼容器,而非HTML文本。
l 拼頁(yè)時(shí),是按順序的。
l 這些文件中的代碼,在被拼時(shí),只是普通文字,當(dāng)最終拼成后,才會(huì)被檢查/編譯/報(bào)錯(cuò)/顯示……
l 一個(gè)文件中可以多次include另一個(gè)文件。但前提是不能使“聲明/定義”(標(biāo)識(shí)符)部分重復(fù)(重名)。
l 如果在各文件中終有“runat=server”的控件,一定要注意form runat=”server”>的始/終位置。
l 一頁(yè)中只能有一個(gè)form runat=”server”>,就算可以設(shè)置form的id也不能有多個(gè)。
l 一頁(yè)中可能多次出現(xiàn)script runat=”server”>,而且其都會(huì)運(yùn)行在這個(gè)“最終頁(yè)”顯示前。
還有就是,它的運(yùn)行與頁(yè)面順序無(wú)關(guān),它是一個(gè)“代碼聲明塊”,它的元素只會(huì)被調(diào)用后運(yùn)行。
l 我們可以把script runat=”server”>們,放在頁(yè)面的任何地方,包括form runat=”server”>內(nèi)。
l 用include法引用文件,擴(kuò)展名可隨意。
您可能感興趣的文章:- Linux vmstat命令實(shí)戰(zhàn)詳細(xì)解析