📄 webformssyntaxref.aspx
字号:
<%@ Register TagPrefix="Acme" Namespace="Acme" Assembly="QSTools" %>
<%@ Register TagPrefix="Acme" TagName="SourceRef" Src="/quickstart/aspplus/util/SrcRef.ascx"%>
<!-- #include virtual="/quickstart/aspplus/include/header.inc" -->
<h4>Web 窗体语法参考</h4>
<p>
<div class="indent" style="font-family:Verdana; font-size:8pt;">
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#syntax">ASP.NET Web 窗体语法元素</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#render">呈现代码语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#code">声明代码语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#ctrl">ASP.NET 服务器控件语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#htmlctrl">ASP.NET Html 服务器控件语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#databind">数据绑定语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#object">对象标记语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#comment">服务器端注释语法</a><br>
<b> <img align="middle" src="/quickstart/images/bullet.gif"> </b><a class="toc2" href="#include">服务器端包含语法</a><br>
</div>
<p>
<hr>
<!--BEGIN SECTION--> <a name="syntax"><span class="subhead">ASP.NET Web 窗体语法元素</span>
<p>
ASP.NET Web 窗体页是带 .aspx 文件扩展名的声明性文本文件。除静态内容外,还可以使用八个独特的语法标记元素。本“入门”节复习这些语法元素中的每一个并提供示例说明它们的用法。
<!--BEGIN SECTION--> <br> <a name="render"><br> <span class="subhead">呈现代码语法:<% %> 和 <%= %></span>
<p>
代码呈现块由 <% ...%> 元素表示,允许自定义控件内容显示,并且在 Web 窗体页执行的呈现阶段执行。下面的示例说明可以如何使用它们在 HTML 内容上循环。
<p><Acme:TabControl runat="server">
<Tab Name="C#">
<% for (int i=0; i<8; i++) { %>
<font size="<%=i%>"> Hello World! </font> <br>
<% } %>
</Tab>
<Tab Name="VB">
<% For I=0 To 7 %>
<font size="<%=i%>"> Hello World! </font> <br>
<% Next %>
</Tab>
<Tab Name="JScript">
<% for (var i:int=0; i<8; i++) { %>
<font size="<%=i%>"> Hello World! </font> <br>
<% } %>
</Tab>
</Acme:TabControl><p>
<Acme:LangSwitch runat="server">
<CsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/CS/reference1.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference1.src"
Icon="/quickstart/aspplus/images/reference1.gif"
Caption="C# Reference1.aspx"
runat="server" />
</CsTemplate>
<VbTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/VB/reference1.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference1.src"
Icon="/quickstart/aspplus/images/reference1.gif"
Caption="VB Reference1.aspx"
runat="server" />
</VbTemplate>
<JsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/JS/reference1.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference1.src"
Icon="/quickstart/aspplus/images/reference1.gif"
Caption="JScript Reference1.aspx"
runat="server" />
</JsTemplate>
</Acme:LangSwitch>
<p>
只执行由 <% ...%> 括起来的代码,但计算包含等号的表达式(<%= ...%>),并将结果显示为内容。因此,<code><nobr><%="Hello World" %></nobr></code> 呈现与 C# 代码 <code><nobr><% Response.Write("Hello World"); %></nobr></code> 相同的内容。
<p>
<b>注意:</b>对于使用标记结束或分隔语句的语言(如 C# 中的分号 (;)),根据代码的呈现方式正确放置那些标记很重要。
<p>
<div class="indent">
<table class="table2" cellpadding=3>
<tr><th colspan="2"><b>C# code</b></th></tr>
<tr>
<td><div class="code"><% Response.Write("Hello World"); %></div></td>
<td>A semicolon is necessary to end the statement.</td></tr>
<tr>
<td><div class="code"><%="Hello World"; %></div></td>
<td>Wrong: Would result in "<code>Response.Write("Hello World";);</code>".</td></tr>
<tr>
<td><div class="code"><%="Hello World" %></div></td><td>A semicolon is not necessary.</td></tr>
</table>
</div>
<!--BEGIN SECTION--> <br> <a name="code"><br> <span class="subhead">声明代码语法:<script runat="server"> </span>
<p>
代码声明块定义将编译为生成的 <b>Page</b> 类的成员变量和方法。这些块可用于创作页/导航逻辑。下面的示例说明可以如何在 <b><script runat="server"></b> 块内声明 <b>Subtract</b> 方法,然后如何从页中调用此方法。
<p><Acme:TabControl runat="server">
<Tab Name="C#">
<script language="C#" runat=server>
int subtract(int num1, int num2) {
return num1 - num2;
}
</script>
<%
...
number = subtract(number, 1);
...
%>
</Tab>
<Tab Name="VB">
<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)
...
%>
</Tab>
<Tab Name="JScript">
<script language="JScript" runat=server>
function subtract(num1:int, num2:int) : int {
return num1 - num2;
}
</script>
<%
...
number = subtract(number, 1);
...
%>
</Tab>
</Acme:TabControl><p>
<p>
<Acme:LangSwitch runat="server">
<CsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/CS/reference2.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference2.src"
Icon="/quickstart/aspplus/images/reference2.gif"
Caption="C# Reference2.aspx"
runat="server" />
</CsTemplate>
<VbTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/VB/reference2.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference2.src"
Icon="/quickstart/aspplus/images/reference2.gif"
Caption="VB Reference2.aspx"
runat="server" />
</VbTemplate>
<JsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/JS/reference2.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference2.src"
Icon="/quickstart/aspplus/images/reference2.gif"
Caption="JScript Reference2.aspx"
runat="server" />
</JsTemplate>
</Acme:LangSwitch>
<p>
<b>重要说明:</b>与 ASP 不同(在 ASP 中,函数可以在 <% %> 块中声明),所有的函数和全局页变量都必须在 <b><script runat=server></b> 标记中声明。在 <% %> 块内声明的函数现在将生成语法编译错误。
<!--BEGIN SECTION--> <br> <a name="ctrl"><br> <span class="subhead">ASP.NET 服务器控件语法</span>
<p>
自定义 ASP.NET 服务器控件使页开发人员能够动态生成 HTML 用户界面 (UI) 并响应客户端请求。这些控件在文件内用基于标记的声明语法表示。这些标记不同于其他标记,因为它们包含<b>“runat=server”</b>属性。下面的示例说明可以如何在 ASP.NET 页内使用 <b><asp:label runat="server"></b> 服务器控件。该控件与 <b><nobr>System.Web.UI.WebControls</nobr></b> 命名空间中的 <b>Label</b> 类相对应,默认情况下包括该命名空间。
<p>
通过添加 ID 为“Message”的标记,在运行时创建 <b>Label</b> 的实例:
<div class="code"><pre>
<asp:label id="Message" font-size=24 runat="server"/>
</pre></div>
然后可用同一名称访问此控件。下面的代码行设置此控件的 <b>Text</b> 属性。
<p><Acme:TabControl runat="server">
<Tab Name="C#">
Message.Text = "Welcome to ASP.NET";
</Tab>
<Tab Name="VB">
Message.Text = "Welcome to ASP.NET"
</Tab>
<Tab Name="JScript">
Message.Text = "Welcome to ASP.NET";
</Tab>
</Acme:TabControl><p>
<Acme:LangSwitch runat="server">
<CsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/CS/reference3.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference3.src"
Icon="/quickstart/aspplus/images/reference3.gif"
Caption="C# Reference3.aspx"
runat="server" />
</CsTemplate>
<VbTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/VB/reference3.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference3.src"
Icon="/quickstart/aspplus/images/reference3.gif"
Caption="VB Reference3.aspx"
runat="server" />
</VbTemplate>
<JsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/JS/reference3.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference3.src"
Icon="/quickstart/aspplus/images/reference3.gif"
Caption="JScript Reference3.aspx"
runat="server" />
</JsTemplate>
</Acme:LangSwitch>
<!--BEGIN SECTION--> <br> <a name="htmlctrl"><br> <span class="subhead">ASP.NET HTML 服务器控件语法 </span>
<p>
HTML 服务器控件使页开发人员能够以编程方式操作页内的 HTML 元素。HTML 服务器控件标记因<b>“runat=server”</b>属性而不同于客户端 HTML 元素。下面的示例说明可以如何在 ASP.NET 页内使用 HTML <b><span runat=server></b> 服务器控件。
<p>
与其他服务器控件一样,也能以编程方式访问方法和属性,如下例所示。
<p><Acme:TabControl runat="server">
<Tab Name="C#">
<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"/>
</Tab>
<Tab Name="VB">
<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"/>
</Tab>
<Tab Name="JScript">
<script language="JScript" runat="server">
function Page_Load(sender:Object, e:EventArgs) : void {
Message.InnerHtml = "Welcome to ASP.NET";
}
</script>
...
<span id="Message" style="font-size:24" runat="server"/>
</Tab>
</Acme:TabControl><p>
<Acme:LangSwitch runat="server">
<CsTemplate>
<Acme:SourceRef
RunSample="/quickstart/aspplus/samples/webforms/reference/CS/reference4.aspx"
ViewSource="/quickstart/aspplus/samples/webforms/reference/reference4.src"
Icon="/quickstart/aspplus/images/reference4.gif"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -