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

语法

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

<%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. Linux系统安全加固(一)

    Linux系统安全加固(一)     去年8月,某所网站遭黑客攻击瘫痪虽然港交所随后及时启用备用系统,但还是致使7支股票1支债卷被迫停牌,次日再次遭受攻击而瘫痪:在去年年底继CSDN信息安全出现之后, ...

  2. Python(四) 分支、循环、条件与枚举

    一.什么是表达式 表达式(Expression)是运算符(operator)和操作数(operand)所构成的序列 二.表达式的优先级 三.表达式优先级练习 优先级同级 从左往右计算 1 or 2 a ...

  3. SQL SERVER 新增表、新增字段、修改字段 判断表是否存在

    // 新增之前判断表是否存在 IF NOT EXISTS (SELECT NAME FROM SYSOBJECTS WHERE ID = OBJECT_ID('tb_MessageHistory')) ...

  4. Fishing Net

    In a highly modernized fishing village, inhabitants there make a living on fishery. Their major tool ...

  5. 昼猫笔记 JavaScript -- 闭包

      本次主要内容是 闭包 阅读时间: 约 3分钟 记得点个赞支持支持我哦 初步了解 先看下代码,输出结果是多少? function fn1 () { var a = 2 function fn2 () ...

  6. 在XEN上启动guest时loopback设备不足

    现象: 通常出现在用户挂载了多个img到guest上,会发现无法再创建guest或者无法启动guest的现象. /var/log/xen/xen-hot-plug.log中错误如下: xenstore ...

  7. win系统下的eclipse连接和使用linux上的hadoop集群

    准备工作 先在win系统的hosts文件中加入下面内容 10.61.6.164master     //hadoop集群的master节点 一.首先在eclipse上安装hadoop插件 下载hado ...

  8. jQuery对表格进行类样式

    <%-- <%@ page language="java" contentType="text/html; charset=utf-8" pageE ...

  9. 查看activity task相关信息

    可以使用命令 adb shell dumpsys activity 查看的结果如下 ACTIVITY MANAGER PENDING INTENTS (dumpsys activity intents ...

  10. es8 --- 新特性

    ES8尚未发布(2017年1月),下面是它已经完成起草的一些特性: Object.values() Object.entries() padStart() padEnd() Object.getOwn ...