有很长时间没来 CSDN 的博客了。今天在社区里看到一个网友提问关于 asp.net 中“<%# %>” 的问题,所以还是想把这篇文章发到自己的博客上。虽然不是非常很高深的问题,但是还是应该多加留意……
aspx页面中,<%= %> 与 <%# %> 的区别
关于这个问题,在多数的 ASP.NET 的教材中,都提到了一些。<%= %>与<%# %>的区别在于:绑定时机不同,<%# %>是在控件调用DataBind函数的时候才被确定。对于<%= %>,我想你应该不会陌生,在ASP时代,它就相当于 Response.Write。在ASP.NET时代也一样。暂时先不去理会教材中说的,也先把“绑定时机”放到一边。<%= %>与<%# %>的区别是:前者是输出,而后者是赋值!即:
<%= "A" %> 相当于:Response.Write("A");
<%# "A" %> 相当于:变量="A";
先来看一个例子:
<html>
<body>
<asp:Button Text=<%# "Hello, the Internet!" %> RunAt="Server" ID="testButton" />
</body>
</html>
这句话相当于赋值,把上面这个勾黑句子翻译成后台代码就是:testButton.Text="Hello, the Internet!";
第二个例子:
<html>
<body>
<%= "Hello, the Internet!" %>
<%# "Hello, the Internet!" %>
</body>
</html>
<%= "Hello, the Internet!" %> 就相当于:Response.Write("Hello, the Internet!");
那么第二个<%# %>怎么解释呢?如果按照我“赋值”的说法,它把值赋给谁了呢?
其实翻译成后台代码是这样的:(new System.Web.UI.LiteralControl()).Text="Hello, the Internet!";
一段文本,虽然它不被包含在任何开始结束标签之间,但是[font='Courier]ASP.NET[/font]也认为它是一个控件。一个[font='Courier]LiteralControl[/font]控件。所以,[font='Courier]<%# %>[/font]就是把值赋给[font='Courier]LiteralControl[/font]控件的Text属性。
我做过一个生成静态 HTML 代码的类,使用的手法是包装了 HtmlTextWriter这个类。并且我做了跟踪调试。跟踪的结果令我感到很意外。ASP.NET 会把所有的未标有“runat=server”属性的标记,统统看作是一个LiteralControl 控件。例如在上面那些 HTML 代码里,例如在文章开始处的那些 HTML 代码里,ASP.NET会认为是有三个服务器控件,分别是:LiteralControl、Button、LiteralCtontrol。第一个LiteralControl 的 Text 值为“<html><body>Hello, theInternet!”,而最后一个 LiteralControl 的 Text值是“</body></html>”。也就是说,<%= %> 应早于 <%#%>,先被“翻译”出来……
分享到:
相关推荐
`DataBinder.Eval` 是ASP.NET中用于在控件中绑定数据的一个非常重要的方法,它允许开发者在ASP.NET页面上动态地从数据源获取值并显示。本文将深入探讨 `DataBinder.Eval` 的基本使用方式,高效用法,以及如何实现...
首先,数据绑定的基本原理是将数据源(如数据库、XML文件等)与Web界面元素(如GridView、DetailsView等)关联,使数据能够自动地在用户界面上呈现。数据绑定分为三层结构:数据库通过ADO.NET提供数据,数据源控件...
### C# ASPX 数据绑定方法集详解 #### 一、简介 在ASP.NET Web应用程序开发过程中,数据绑定是一项非常重要的技术。它可以帮助开发者轻松地将数据源中的数据映射到Web页面上的各种控件上,从而实现动态内容的展示。...
在ASP.NET中,数据绑定是...总之,ASP.NET数据绑定机制涉及了编译时的代码生成和运行时的控件实例化与数据绑定表达式的执行。深入理解这一机制可以帮助开发者更高效地利用ASP.NET框架,创建更灵活、高效的Web应用程序。
在ASP.NET中,.aspx页面的数据绑定是Web开发中的一个核心概念,它允许开发者将后端数据动态地显示在前端页面上。本文将详细介绍ASP.NET中.aspx页面绑定数据的各种方法及其应用场景。 #### 一、Eval()与DataBinder....
【Web 窗体页的数据绑定表达式】是ASP.NET Web开发中的一种核心特性,它允许开发者将网页上的控件属性与数据源关联起来,从而动态地显示和更新数据。这种绑定不是通过直接将控件属性与数据源连接,而是通过特定的...
<%=%>主要用于输出变量的值,可以看作是Response.Write()的简写形式,而<%#%>则主要用于数据绑定,需要配合DataBind()方法使用,以实现从数据源到页面元素的数据绑定。 在实际开发过程中,开发者应根据需要选择...
### ASP.NET 2.0 的数据源、数据绑定控件概述与区别 #### 数据源控件(DataSource Controls) 在 ASP.NET 2.0 中,数据源控件是用于连接数据库和其他数据存储的关键组件,它们提供了从数据源读取数据的能力,并...
2. 绑定表达式:数据绑定通过特殊的语法实现,如`<%# %>`(DataBinding表达式)或`<%=%>`(Eval表达式)。这些表达式在运行时被解析,并将数据源中的值插入到HTML输出中。 3. 绑定控件:常见的绑定控件有GridView、...
在.NET框架中,数据绑定是ASP.NET应用程序中常用的一种机制,它允许我们轻松地将数据源中的数据与UI控件关联起来。`.NET中的数据绑定表达式`主要涉及两种方法:Eval和Bind,以及它们在ASP.NET页面中的使用方式。 ...
数据绑定的过程就是将这些数据源与控件关联,以便在UI上显示和编辑数据。 2. 数据绑定控件:常见的数据绑定控件有DataGridView、ListBox、ComboBox、TextBox等。例如,DataGridView用于展示表格数据,ComboBox用于...
在ASP.NET中,数据绑定是将控件与数据源连接的关键技术,用于动态显示和更新数据。`Bind`和`Eval`是两种常见的数据绑定方法,它们在处理数据时有各自的特点和适用场景。 `Eval`方法主要用于读取数据源中的字段值,...
在DevExpress TreeList中,数据绑定是指将数据源(如数据库表、对象集合或XML文件)与TreeList控件关联的过程。这使得TreeList可以自动加载、显示和更新数据源中的信息。数据绑定的基本步骤包括: 1. 创建数据源:...
本篇文章将深入探讨WPF中的数据绑定,以及元素与元素之间的数据共享。 ### 一、数据绑定基础 数据绑定在WPF中主要通过`Binding`类来实现,它允许我们将控件的属性(如TextBlock的Text属性)与数据源的某个属性关联...
### ASP.NET 2.0 数据绑定高级技巧 #### 内容概述 本篇文章将深入探讨在ASP.NET 2.0框架下数据绑定的各种高级技巧及其应用场景。这些技巧不仅包括简单的数据绑定方法,还涵盖了多种数据源控件以及如何利用它们进行...
总结起来,`C# ASPX`的数据绑定方法集包括了`Eval`和`Bind`,它们是ASP.NET中连接数据源与用户界面的主要工具。`Eval`适合于单向绑定,而`Bind`支持双向绑定。理解并熟练运用这些方法对于开发动态、交互式的Web应用...
在C#编程中,DataGridView控件是...通过绑定数据源,可以轻松地实现数据的显示和编辑,并通过事件处理和数据验证来确保数据的质量。理解和掌握这些基本操作对于开发高效、用户友好的Windows Forms应用程序至关重要。
在.NET框架中,数据绑定机制使得开发者无需编写大量代码就能实现数据的自动更新与显示。.NET 2.0进一步增强了这一特性,提供了更为灵活和强大的数据绑定功能。 #### 三、数据绑定的种类 .NET 2.0中数据绑定主要包括...