国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

ASP.NET 2.0 Web窗體語法指導

2019-11-18 17:05:17
字體:
來源:轉載
供稿:網友

  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"/>


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屯门区| 乳源| 札达县| 永德县| 江口县| 嘉禾县| 汽车| 永吉县| 茂名市| 凉城县| 舞钢市| 阜康市| 高淳县| 五河县| 榆树市| 来凤县| 延安市| 临高县| 都江堰市| 普定县| 诸城市| 墨江| 神农架林区| 化州市| 盐边县| 扬州市| 三台县| 峨眉山市| 崇信县| 无为县| 句容市| 临沂市| 北安市| 凤台县| 镇安县| 醴陵市| 林周县| 禄劝| 濮阳市| 德兴市| 茂名市|