科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件ASP.NET 2.0 Web窗体语法指导(2)

ASP.NET 2.0 Web窗体语法指导(2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

ASP.NET Web窗体页面是一个宣告式的文本文件,扩展名是.aspx。

作者:陶刚编译 来源:天极开发 2007年11月6日

关键字: ASP.NET web 窗体 语法 Windows

  • 评论
  • 分享微博
  • 分享邮件
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"/>

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章