Web 窗体语法参考
Web 窗体语法参考
呈现代码语法
声明代码语法
ASP.NET 服务器控件语法
ASP.NET Html 服务器控件语法
数据绑定语法
对象标记语法
服务器端注释语法
服务器端包含语法
ASP.NET Web 窗体语法元素
ASP.NET Web 窗体页是带 .aspx 文件扩展名的声明性文本文件。除静态内容外,还可以使用八个独特的语法标记元素。本“入门”节复习这些语法元素中的每一个并提供示例说明它们的用法。
代码呈现块由 <% ...%> 元素表示,允许自定义控件内容显示,并且在 Web 窗体页执行的呈现阶段执行。下面的示例说明可以如何使用它们在 HTML 内容上循环。
< language="JavaScript" type="text/javascript"> function doClick(index, numTabs, id) { document.all("tab" + id, index).className = "tab"; for (var i=1; i < numTabs; i++) { document.all("tab" + id, (index + i) % numTabs).className = "backtab"; } document.all("code" + id, index).style.display = ""; for (var j=1; j < numTabs; j++) { document.all("code" + id, (index + j) % numTabs).style.display = "none"; } }
<% For I=0 To 7 %> <font size="<%=i%>"> Hello World! </font> <br> <% Next %> |
|||
C# | VB | JScript |
[运行示例] | [查看源代码] |
只执行由 <% ...%> 括起来的代码,但计算包含等号的表达式(<%= ...%>),并将结果显示为内容。因此,
呈现与 C# 代码
相同的内容。
注意:对于使用标记结束或分隔语句的语言(如 C# 中的分号 (;)),根据代码的呈现方式正确放置那些标记很重要。
C# code | |
---|---|
<% Response.Write("Hello World"); %>
|
A semicolon is necessary to end the statement. |
<%="Hello World"; %>
|
Wrong: Would result in "Response.Write("Hello World";); ". |
<%="Hello World" %>
|
A semicolon is not necessary. |
呈现代码语法:<% %> 和 <%= %>
声明代码语法:<script runat="server">
代码声明块定义将编译为生成的 Page 类的成员变量和方法。这些块可用于创作页/导航逻辑。下面的示例说明可以如何在 <script runat="server"> 块内声明 Subtract 方法,然后如何从页中调用此方法。
<script language="C#" runat=server> int subtract(int num1, int num2) { return num1 - num2; } </script> <% ... number = subtract(number, 1); ... %> |
|||
C# | VB | JScript |
[运行示例] | [查看源代码] |
重要说明:与 ASP 不同(在 ASP 中,函数可以在 <% %> 块中声明),所有的函数和全局页变量都必须在 <script runat=server> 标记中声明。在 <% %> 块内声明的函数现在将生成语法编译错误。
自定义 ASP.NET 服务器控件使页开发人员能够动态生成 HTML 用户界面 (UI) 并响应客户端请求。这些控件在文件内用基于标记的声明语法表示。这些标记不同于其他标记,因为它们包含“runat=server”属性。下面的示例说明可以如何在 ASP.NET 页内使用 <asp:label runat="server"> 服务器控件。该控件与
通过添加 ID 为“Message”的标记,在运行时创建 Label 的实例:
<asp:label id="Message" font-size=24 runat="server"/>
Message.Text = "Welcome to ASP.NET" |
|||
C# | VB | JScript |
[运行示例] | [查看源代码] |
HTML 服务器控件使页开发人员能够以编程方式操作页内的 HTML 元素。HTML 服务器控件标记因“runat=server”属性而不同于客户端 HTML 元素。下面的示例说明可以如何在 ASP.NET 页内使用 HTML <span runat=server> 服务器控件。
与其他服务器控件一样,也能以编程方式访问方法和属性,如下例所示。
<script language="C#" runat="server"> void Page_Load(Object sender, EventArgs e) { Message.InnerHtml = "Welcome to ASP.NET"; } </script> ... <span id="Message" style="font-size:24" runat="server"/> |
|||
C# | VB | JScript |
[运行示例] | [查看源代码] |
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()
。
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 |
|||
C# | VB | JScript |
调用控件的 DataBind 方法使递归树从此控件开始沿着树向下移动;DataBinding 事件在该层次结构的每个服务器控件上引发,并相应地计算控件上的数据绑定表达式。因此,如果调用页的 DataBind 方法,则将调用页内的每个数据绑定表达式。
[运行示例] | [查看源代码] |
对象标记使页开发人员能够用基于标记的声明语法声明和创建变量的实例。下面的示例说明可以如何使用对象标记创建 ArrayList 类的实例。
<object id="items" class="System.Collections.ArrayList" runat="server"/>
Sub Page_Load(sender As Object, e As EventArgs) items.Add("One") items.Add("Two") items.Add("Three") ... End Sub |
|||
C# | VB | JScript |
[运行示例] | [查看源代码] |
服务器端注释使页开发人员能够防止服务器代码(包括服务器控件)和静态内容执行或呈现。下面的示例说明如何阻止内容执行和发送到客户端。注意,<%-- 和 --%> 之间的内容将被筛选掉,仅在原始服务器文件中可见,即使其中包含其他 ASP.NET 指令。
<%-- <asp:calendar id="MyCal" runat=server/> <% For I=0 To 44 %> Hello World <br> <% Next %> --%> |
|||
C# | VB | JScript |
[运行示例] | [查看源代码] |
服务器端 #Includes 使开发人员能够将指定文件的原始内容插入 ASP.NET 页内的任意位置。下面的示例说明如何将自定义的页眉和页脚插入页中。
<!-- #Include File="Header.inc" --> ... <!-- #Include File="Footer.inc" -->
[运行示例] | [查看源代码] |
ASP.NET 服务器控件语法
ASP.NET HTML 服务器控件语法
数据绑定语法:<%# %>
对象标记语法:<object runat="server" />
服务器端注释语法:<%--注释--%>
服务器端包含语法:<-- #Include File="Locaton.inc" -->