分享
 
 
 

ASP.NET 2.0 Web窗体语法指导

王朝asp·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

ASP.NET Web窗体页面是一个宣告式的文本文件,扩展名是.aspx。除了静态的内容之外,你还可以使用八种不同的语法标记元素。这一部分回顾这些语法元素并提供了一些使用方法示例。

呈现代码的语法:<% %>和<%= %>

代码呈现块用<% ... %>元素表示,它允许你控制呈现的内容,在Web窗体页面执行的显示阶段执行。下面的例子演示了如何使用它们循环显示HTML的内容。

<%@ Page Language="VB" %>

<html>

<body>

<% Dim I As Integer

For I = 0 To 7 %>

<font size="<%=I%>"> Hello World! </font> <br>

<% Next %>

</body>

</html>

<% ... %>包含的代码只是执行,而包含等号(<%= ... %>)的表达式会在显示内容的时候计算结果。因此,<%="Hello World" %>与C#代码<% Response.Write("Hello World"); %>显示的结果相同。

请注意,由于语言需要使用标记来终止或分离语句(例如C#中的分号;),正确地放置这些标记就很重要了。

C# 代码

<% Response.Write("Hello World"); %> 需要用分号来终止语句。

<%="Hello World"; %> 错误:导致"Response.Write("Hello World";);"。

<%="Hello World" %> 不需要分号。

声明代码的语法:<script runat="server">

代码声明块定义了会被编译到Page类中的成员变量和方法。这些块可用于建立页面和导航逻辑。下面的例子演示了如何在<script runat="server">块中定义Subtract方法,接着在页面中调用它。

<html>

<script language="VB" runat=server>

Function Subtract(Num1 As Integer, Num2 As Integer) As Integer

Return Num1-Num2

End Function

</script>

<body>

<%

Dim Number As Integer = 100

Do While Number > 0

Response.Write("Value: " & Number & "<br>")

Number = Subtract(Number, 1)

Loop

%>

</body>

</html>

请注意:与ASP不同——在ASP中函数必须在<% %>块中定义——所有的函数和全局变量必须使用<script runat=server>标记定义。<% %>块中的函数声明会提示语法编译错误信息。

服务器控件语法

定制的ASP.NET服务器控件允许页面开发者动态地生成HTML用户界面并响应客户端请求。它们是在文件中用宣告式的、基于标记的语法表示的。这些标记不同于其它的一些标记,它们包含一个"runat=server"属性。下面的例子演示了如何在ASP.NET页面中使用<asp:label runat="server">服务器控件。这个控件与System.Web.UI.WebControls名字空间中的Label类对应。

通过添加一个ID为“Message”的标记,可以在运行时建立一个Label实例:

<asp:label id="Message" font-size=24 runat="server"/>

我们可以使用这个名字来访问该控件。下面的代码设置了该控件的Text属性。

Message.Text = "Welcome to ASP.NET"

<html>

<script language="VB" runat=server>

Sub Page_Load(Sender As Object, E As EventArgs)

Message.Text = "Welcome to ASP.NET"

End Sub

</script>

<body>

<asp:label id="Message" font-size=24 runat=server/>

</body>

</html>

HTML服务器控件语法

HTML服务器控件允许开发者编程操作页面中的HTML元素。HTML服务器控件标签与客户端HTML元素是有区别的,它带有"runat=server"属性。下面的例子演示了如何在ASP.NET页面中使用HTML<span runat=server>服务器控件。

<html>

<script language="VB" runat=server>

Sub Page_Load(Sender As Object, E As EventArgs)

Message.InnerHtml = "Welcome to ASP.NET"

End Sub

</script>

<body>

<span id="Message" style="font-size:24" runat=server/>

</body>

</html>

数据绑定语法:<%# %>

ASP.NET内建的支持数据绑定的能力允许页面开发者分层次地把控件属性绑定到数据容器值。<%# %>代码块中的代码只在自己的父控件容器的DataBind方法被调用的时候才执行。下面的例子演示了如何在<asp:datalist runat=server>控件中使用数据绑定语法。

在这个数据列表中,每个项都指定了模板。项模板的内容是使用数据绑定表达式指定的,Container.DataItem指向MyList数据列表使用的数据源。

<asp:datalist id="MyList" runat=server>

<ItemTemplate>

Here is a value: <%# Container.DataItem %>

</ItemTemplate>

</asp:datalist>

在这种情况下,MyList控件的数据源是编程设定的,接着调用了DataBind()方法。

调用某个控件的DataBind方法将引发一个递规树(从该控件开始的到树中的下层控件);该层次中的每个服务器控件的DataBinding事件都会被引发,控件中的数据绑定表达式相应地计算出值。因此,如果页面的DataBind方法被调用,那么页面中的每个数据绑定表达式都会被调用。

<html>

<script language="VB" runat=server>

Sub Page_Load(Sender As Object, E As EventArgs)

Dim Items As New ArrayList

Items.Add("One")

Items.Add("Two")

Items.Add("Three")

MyList.DataSource = Items

MyList.DataBind()

End Sub

</script>

<body>

<asp:datalist id="MyList" runat=server>

<ItemTemplate>

Here is a value: <%# Container.DataItem %>

</ItemTemplate>

</asp:datalist>

</body>

</html>

ASP.NET 2.0还包含了一种新的简化的数据绑定语法,它允许控件自动地数据绑定到数据源控件,而无需在页面代码中调用DataBind()。在“执行数据访问”章节中会讨论这种语法。

对象标记语法:<object runat="server" />

对象标记允许页面开发者使用宣告式的、基于标记的语法来声明和建立变量实例。下面的例子演示了如何使用对象标记来建立ArrayList类的实例。

在运行的时候该对象会被自动地建立,并可以通过ID“items”访问它。

<html>

<script language="VB" runat=server>

Sub Page_Load(ByVal Sender As Object, ByVal E As EventArgs)

ArrayItems.Add("One")

ArrayItems.Add("Two")

ArrayItems.Add("Three")

MyList.DataSource = ArrayItems

MyList.DataBind()

End Sub

</script>

<body>

<object id="ArrayItems" class="System.Collections.ArrayList" runat=server/>

<asp:datalist id="MyList" runat=server>

<ItemTemplate>

Here is a value: <%# Container.DataItem %>

</ItemTemplate>

</asp:datalist>

</body>

</html>

服务器端注释语法:<%-- Comment --%>

服务器端注释让页面开发者能够阻止服务器代码(包括服务器控件)和静态内容的执行和呈现。下面的例子演示了如何阻止内容的执行和发送给客户端。请注意,<%--和--%>之间的所有信息都会被过滤掉,并且只有在原始的服务器文件中才可以看见,即使它包含了其它的ASP.NET指令。

<html>

<body>

The below content has been hidden from browser clients using a server-side comment

(view the .aspx source to see what we mean :-)

<%--

<asp:calendar id="MyCal" runat=server/>

<% For I = 0 To 44 %>

Hello World <br>

<% Next %>

--%>

</body>

</html>

服务器端文件包含语法:<-- #Include File="Locaton.inc" -->

服务器端文件包含(#Include)允许开发者在ASP.NET页面的任何位置插入特定文件的内容。下面的例子演示了如何在一个页面中插入自定义的标题和脚注。

<html>

<body>

<!-- #Include File="Header.inc" -->

<br />

<h3> Main page content </h3>

<br />

<!-- #Include File="Footer.inc" -->

</body>

</html>

表达式语法:<%$ ... %>2.0中的新特性

ASP.NET 2.0增加了一个新的用于在页面分析之前进行值替代的宣告式表达式语法。当我们需要用Web.config文件中的连接字符串值或应用程序设置替换服务器控件属性值的时候,它就非常有用。在本地化(locaization)的时候,它还可以用于替换资源文件中的值。

<asp:SqlDataSource ID="SqlDataSource1" ConnectionString='<%$ connectionStrings:Pubs %>' runat="server" SelectCommand="sp_GetAuthors" />

<asp:Label ID="Label1" Text='<%$ Resources: ExchRate, ConvertLabel %>' runat="server"/>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有