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

语法

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

<%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. su su- sudo区别概述

    在Linux的操作中经常会用到su 命令进行用户的切换和sudo命令获取root权限,su su- sudo三个命令经常弄混,下面简单的讲解下. 一.查看su的命令帮助信息: pipci@openSU ...

  2. js中split,splice,slice方法之间的差异。

    首先我们先来林格斯双击翻译一下: split  劈开, 使分裂: splice   接合; 使结合: slice  切成薄片, 切: 我先是这么区分的:这三个方法最后一个字母是t的是字符串方法,是e的 ...

  3. 【安卓】数据库基于脚本的&quot;增量更新&quot;,每次更新时不需改动java代码、!

    思路: 1.当然是基于SQLiteOpenHelper.onCreate(第一次安装程序时调用).onUpdate(升级程序时调用) 2.用"脚本"(脚本制作详细方法问度娘)做数据 ...

  4. android ActionBar的使用

    Action Bar主要功能包括:   1. 显示选项菜单   2. 提供标签页的切换方式的导航功能,能够切换多个fragment.    3.  提供下拉的导航条目.   4. 提供交互式活动视图取 ...

  5. Erlang简单并行server

    Erlang简单并行服务器 (金庆的专栏) Erlang并行服务器为每一个Tcp连接创建相应的连接进程,处理client数据. 參考 Erlang程序设计(第2版)17.1.3 顺序和并行服务器 并行 ...

  6. 位运算(&amp;、|、^)与逻辑运算(&amp;&amp;、 ||)差别

    刚无意在一篇文章中看到了位运算(&.|)和逻辑运算(&&.||)的介绍.想起了自己薄弱的基础知识.于是百度了几把总结了下. 首先从概念上区分下,位运算是将运算符两边的数字换算成 ...

  7. ASP.Net MVC默认目录结构

    1.Controllers 保存处理URL请求的Controller类 2.Models 保存操纵业务与数据对象的类 3.Views 保存UI模板页面 4.Scripts 保存Javascript库文 ...

  8. 怎样通过MSG_WAITALL设置阻塞时间,IO模式精细讲解: MSG_DONTWAIT 、 MSG_WAITALL

    首先给出MSDN上一段设置阻塞超时的代码:(网址为http://social.msdn.microsoft.com/Forums/zh-SG/visualcpluszhchs/thread/3d9da ...

  9. javafx style and cssFile

    public class EffectTest extends Application { public static void main(String[] args) { launch(args); ...

  10. ZJOI2017线段树

    ZJOI2017线段树 题意: ​ 给你一颗广义线段树,太长了,自己去看. 题解: ​ 直接上zkw那一套,把闭区间换成开区间,就是把取\([l,r]\),变成取\([l-1,l-1],[r+1,r+ ...