其实<%%>很早之前就见过了,只是会用一点功能,其它的不甚了解。今天偶尔见到了它的庐山真面目,现在共享给大家。

语法

代码块呈现(<%%>)定义了当呈现页时执行的内联代码或内联表达式,它的具体语法如下:

<%code%>//内联代码

<%=expression%>//内联表达式

使用内联代码可以定义独立的行或代码块。它是呈现页面的过程中执行的服务器代码。关于嵌入式代码块的使用说明,如下:ASP.NET网页中支持嵌入式代码块,主要用于保留与旧的ASP技术的向后兼容性。一般情况下,将嵌入式代码块用于复杂的编程逻辑并不是最佳做法,因为当页中的代码与标记混合时,很难进行调试和维护。此外,由于代码将在呈现页的过程中执行,因此与将代码至于适当的页处理阶段以执行后台代码或脚本块代码相比,灵活性大大降低。

嵌入式代码块的部分用途包括:

将控件元素或标记元素的值设置为函数返回的值。

将计算直接嵌入到标记或控件属性中。

示例

示例1:在页面上输出5行标记为“信息技术提高班”的字符串,运行效果如图:

代码如下:

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="TestLocalData.WebForm1" %>
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title>测试内联代码</title>
  7. </head>
  8. <body>
  9. <form id="form1" runat="server">
  10. <div>
  11. <!--打印5行字符串-->
  12. <%for (int i = 1; i <=5; i++) %>
  13. <%{ %>
  14. <%Response.Write("信息技术提高班"); %><br />
  15. <%} %>
  16. </div>
  17. </form>
  18. </body>
  19. </html>
  20. </span>

示例2:内联表达式是调用Write方法的快捷方式。<%=expression%>用于解析表达式,并将其值返回到块中。以下示例代码通过使用内联表达式显示GetTime方法的值,运行效果如图所示:

代码如下:

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm2.aspx.cs" Inherits="TestLocalData.WebForm2" %>
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title>测试内联表达式</title>
  7. <script runat="server">
  8. protected String GetTime() {
  9. return DateTime.Now.ToString("t");  //获取当前时间hh:mm
  10. }
  11. </script>
  12. </head>
  13. <body>
  14. <form id="form1" runat="server">
  15. <div>
  16. 当前时间是:<%=GetTime() %>
  17. </div>
  18. </form>
  19. </body>
  20. </html></span>

注意:代码块中的代码必须使用该页的默认语言进行编写。例如,如果该页的@Page指令包含属性language=”C#”,则该页将使用Visual C#编译器对标有runat=server的所有脚本块中的代码,以及<%%>代码块中的所有内嵌代码进行编译。

示例3:应用<%%>代码块来实现ASP.NET中简单的属性绑定。

首先了解什么是数据绑定。数据绑定不仅可以直接输出一般输出语句可以输出的数据类型,还可以输出任何一种符合数据绑定要求的数据源,而且对于不同的数据显示控件对数据源的处理可以不一致,也可以根据情况的改变而动态地发生变化。也就是说,在数据绑定中,数据的显示是由数据源和数据显示控件共同决定的。数据源决定数据的内容,数据显示控件决定数据的显示方式。实际上,数据绑定的作用机制就是由数据显示控件调用数据源的方法得到数据的。

数据绑定的语法如下:

<语言标记…属性’<% 数据绑定表达式 %>’runat=”server”>

如果将表达式的结果直接输出到网页上,那么数据绑定的语法如下:

字符串:<% 数据绑定表达式 %>

示例运行结果如图:

下面介绍程序实现的主要步骤(正常情况下应该从数据库中获取,这里为了演示方便就绑定死的数据了):

(1)新建一个aspx页面,在前台页面代码中定义两个公共属性,这两个属性作为绑定数据时的数据源;之后应用<%%>代码块将它与显示控件之间建立绑定关系,完整示例代码如下:

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;"><%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="TestLocalData.WebForm3" %>
  2. <!DOCTYPE html>
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4. <head runat="server">
  5. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  6. <title>数据绑定表达式测试</title>
  7. <script runat="server">
  8. public String Name {
  9. get { return "lc"; }
  10. }
  11. public String Sex {
  12. get { return "male"; }
  13. }
  14. </script>
  15. </head>
  16. <body>
  17. <form id="form1" runat="server">
  18. <div>
  19. 简单属性绑定<br />
  20. 姓名:<%#Name %><br />
  21. 性别:<%#Sex %>
  22. </div>
  23. </form>
  24. </body>
  25. </html>
  26. </span>

说明:基于属性的数据绑定所涉及的属性必须包含get访问器,因为在数据绑定过程中,数据显示控件需要属性的get访问器中从属性中读取数据

(2)绑定完成之后,只需要在页面的Page_Load事件中调用Page类的DataBind方法,来实现在页面加载时读取数据,代码如下:

  1. <span style="font-family:KaiTi_GB2312;font-size:18px;">protected void Page_Load(object sender, EventArgs e)
  2. {
  3. Page.DataBind();
  4. }
  5. </span>

我们在见到一个陌生的知识或者名词之后不应该只是停留在会用的层次上,而应向“知其然知其所以然”靠拢,了解来龙去脉,哪怕掌握不了,最起码也要知道。对于经常使用的知识点扩展查完之后还需要进行消化、实践,这样才能拓展自己的眼界,并在面对该知识的变种之后能够从容的面对。

<%%>创建内联代码块(表达式)的更多相关文章

  1. &lt;%%&gt;创建内联代码块(表达)

    其实<%%>很早之前见过它,将一个小的功能仅.别人不理解.今天偶尔,我们看到它的真面目,今天,给大家分享. 语法 代码块呈现(<%%>)定义了当呈现页时运行的内联代码或内联表达 ...

  2. Asp.Net 之 <%%>相关内联代码块用法

    1.<%@ ... %> 用来添加命名空间引用,如:<%@ import namespace="system.data"> 2.<% ... %> ...

  3. MVC 之 <%%>相关内联代码块用法

    1.<%@ ... %> 添加引用; 2.<% ... %> <%%>之间可以执行服务端代码,如<% foreach (DataRow dataRow in ...

  4. 【转载】ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)

    ASP.NET 内联代码.内联表达式.数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号) 今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对 ...

  5. ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)

    今天在做渭南电脑维修网的一个小功能时遇到了一些问题,因此特别列出,以备他日之用. 首先对ASP.NET 内联代码.内联表达式.数据绑定表达式的概念进行罗列,详细概念以及基本的用法我就不在这里罗嗦了,请 ...

  6. CSS3与页面布局学习总结(二)——Box Model、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  7. Box Model,边距折叠,内联和块标签,CSSReset

    一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三.内联与 ...

  8. CSS3与页面布局学习笔记(二)——盒子模型(Box Model)、边距折叠、内联与块标签、CSSReset

    一.盒子模型(Box Model) 盒子模型也有人称为框模型,HTML中的多数元素都会在浏览器中生成一个矩形的区域,每个区域包含四个组成部分,从外向内依次是:外边距(Margin).边框(Border ...

  9. CSS3与页面布局学习总结——Box Model、边距折叠、内联与块标签、CSSReset

    目录 一.盒子模型(Box Model) 1.1.宽度测试 1.2.溢出测试 1.3.box-sizing属性 1.4.利用CSS画图 二.边距折叠 2.1.概要 2.2.垂直方向外边距合并计算 三. ...

随机推荐

  1. 手动删除oracle数据库

    --===================== -- 手动删除oracle数据库 --===================== 杀掉进程用此方法比较好,能保证杀得干净,而不是用sql 里面的语句ki ...

  2. Java经典算法案例

    笔试中的编程题3 JAVA经典算法40例[程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? ...

  3. 使用iVMS-4200 存储录像数据时的设置

    1.安装软件时,选择:存储服务器 2.对存储服务器进行配置,具体配置见 配置手册.

  4. 自动与因特网时间服务器同步 NTP 服务器 pool.ntp.org, 120.24.166.46 端口 123

    自动与因特网时间服务器同步   NTP 服务器 pool.ntp.org 海康提供的NTP服务器   120.24.166.46     端口  123

  5. Centos6.5 安装lamp环境

    转载自:http://www.jb51.net/article/37987.htm (转载请注明出处,谢谢) 准备篇: 1.配置防火墙,开启80端口.3306端口vi /etc/sysconfig/i ...

  6. 洛谷—— P2580 于是他错误的点名开始了

    https://www.luogu.org/problem/show?pid=2580 题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次 ...

  7. NStimer 被堵塞

    我们在界面上滚动一个scrollview,那么我们会发如今停止滚动前,会发现NSTimer未被运行.就好像scrollView在滚动的时候将timer暂停了一样,在查看对应文档后发现,这事实上就是ru ...

  8. js call 和 apply

    前言 call 和 apply 都是为了改变某个函数运行时的 context 即上下文而存在的,换句话说,就是为了改变函数体内部 this 的指向. call 和 apply二者的作用完全一样,只是接 ...

  9. Gym 100952 A. Who is the winner?

    A. Who is the winner? time limit per test 1 second memory limit per test 64 megabytes input standard ...

  10. shutdown---系统关机

    shutdown命令用来系统关机命令.shutdown指令可以关闭所有程序,并依用户的需要,进行重新开机或关机的动作. 语法 shutdown(选项)(参数) 选项 -c:当执行“shutdown - ...