引自:
http://xchinux.kmip.net/Personal/XChinux/blog/show.php?id=15ASP.NET Web 窗体语法元素
呈现代码语法
声明代码语法
ASP.NET 服务器控件语法
ASP.NET Html 服务器控件语法
数据绑定语法
对象标记语法
服务器端注释语法
服务器端包含语法
ASP.NET Web 窗体语法元素
ASP.NET Web 窗体页是带 .aspx 文件扩展名的声明性文本文件。除静态内容外,还可以使用八个独特的语法标记元素。
呈现代码语法:<% %> 和 <%= %>
代码呈现块由 <% ...%> 元素表示,允许自定义控件内容显示,并且在 Web 窗体页执行的呈现阶段执行。下面的示例说明可以如何使用它们在 HTML 内容上循环。
<% for (int i=0; i<8; i++) { %>
<font size="<%=i%>"> Hello World! </font> <br>
<% } %>
<% For I=0 To 7 %>
<font size="<%=i%>"> Hello World! </font> <br>
<% Next %>
声明代码语法:<script runat="server">
代码声明块定义将编译为生成的 Page 类的成员变量和方法。这些块可用于创作页/导航逻辑。下面的示例说明可以如何在 <script runat="server"> 块内声明 Subtract 方法,然后如何从页中调用此方法。
<script language="VB" runat=server>
Function Subtract(num1 As Integer, num2 As Integer) As Integer
Return(num1 - num2)
End Function
</script>
<%
...
number = subtract(number, 1)
...
%>
重要说明:与 ASP 不同(在 ASP 中,函数可以在 <% %> 块中声明),所有的函数和全局页变量都必须在 <script runat=server> 标记中声明。在 <% %> 块内声明的函数现在将生成语法编译错误。
ASP.NET 服务器控件语法
自定义 ASP.NET 服务器控件使页开发人员能够动态生成 HTML 用户界面 (UI) 并响应客户端请求。这些控件在文件内用基于标记的声明语法表示。这些标记不同于其他标记,因为它们包含“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"
ASP.NET HTML 服务器控件语法
HTML 服务器控件使页开发人员能够以编程方式操作页内的 HTML 元素。HTML 服务器控件标记因“runat=server”属性而不同于客户端 HTML 元素。下面的示例说明可以如何在 ASP.NET 页内使用 HTML <span runat=server> 服务器控件。
与其他服务器控件一样,也能以编程方式访问方法和属性,如下例所示。
<script language="VB" runat="server">
Sub Page_Load(sender As Object, e As EventArgs)
Message.InnerHtml = "Welcome to ASP.NET"
End Sub
</script>
...
<span id="Message" style="font-size:24" runat="server"/>
[I]这里我一再有疑问[/I]
数据绑定语法:<%# %>
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
调用控件的 DataBind 方法使递归树从此控件开始沿着树向下移动;DataBinding 事件在该层次结构的每个服务器控件上引发,并相应地计算控件上的数据绑定表达式。因此,如果调用页的 DataBind 方法,则将调用页内的每个数据绑定表达式。
对象标记语法:<object runat="server" />
对象标记使页开发人员能够用基于标记的声明语法声明和创建变量的实例。下面的示例说明可以如何使用对象标记创建 ArrayList 类的实例。
<object id="items" class="System.Collections.ArrayList" runat="server"/>
运行时自动创建对象,然后可以通过 ID“items”访问此对象。
Sub Page_Load(sender As Object, e As EventArgs)
items.Add("One")
items.Add("Two")
items.Add("Three")
...
End Sub
服务器端注释语法:<%--注释--%>
服务器端注释使页开发人员能够防止服务器代码(包括服务器控件)和静态内容执行或呈现。下面的示例说明如何阻止内容执行和发送到客户端。注意,<%- - 和 --%> 之间的内容将被筛选掉,仅在原始服务器文件中可见,即使其中包含其他 ASP.NET 指令。
<%--
<asp:calendar id="MyCal" runat=server/>
<% For I=0 To 44 %>
Hello World <br>
<% Next %>
--%>
服务器端包含语法:<-- #Include File="Locaton.inc" -->
服务器端 #Includes 使开发人员能够将指定文件的原始内容插入 ASP.NET 页内的任意位置。下面的示例说明如何将自定义的页眉和页脚插入页中。
<!-- #Include File="Header.inc" -->
...
<!-- #Include File="Footer.inc" -->