〈%# 〉与〈%= 〉的区别,显示数据与绑定数据

原创 2006年05月20日 10:46:00

有很长时间没来 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!";

 

一段文本,虽然它不被包含在任何开始结束标签之间,但是ASP.NET也认为它是一个控件。一个LiteralControl控件。所以,<%# %>就是把值赋给LiteralControl控件的Text属性。

我做过一个生成静态 HTML 代码的类,使用的手法是包装了 HtmlTextWriter 这个类。并且我做了跟踪调试。跟踪的结果令我感到很意外。ASP.NET 会把所有的未标有“runat=server”属性的标记,统统看作是一个 LiteralControl 控件。例如在上面那些 HTML 代码里,例如在文章开始处的那些 HTML 代码里,ASP.NET 会认为是有三个服务器控件,分别是:LiteralControl、Button、LiteralCtontrol。第一个 LiteralControl 的 Text 值为“<html><body>Hello, the Internet!”,而最后一个 LiteralControl 的 Text 值是“</body></html>”。也就是说,<%= %> 应早于 <%# %>,先被“翻译”出来……

〈%# 〉与〈%= 〉的区别,显示数据与绑定数据

有很长时间没来 CSDN 的博客了。今天在社区里看到一个网友提问关于 asp.net 中“” 的问题,所以还是想把这篇文章发到自己的博客上。虽然不是非常很高深的问题,但是还是应该多加留意…… ...
  • Yelbosh
  • Yelbosh
  • 2013年10月13日 10:53
  • 518

〈%# 〉与〈%= 〉的区别,显示数据与绑定数据

有很长时间没来 CSDN 的博客了。今天在社区里看到一个网友提问关于 asp.net 中“” 的问题,所以还是想把这篇文章发到自己的博客上。虽然不是非常很高深的问题,但是还是应该多加留意……aspx页...
  • kingboy2008
  • kingboy2008
  • 2010年01月11日 18:29
  • 3609

asp.net 〈%# 〉与〈%=〉的区别,显示数据与绑定数据

有很长时间没来 CSDN 的博客了。今天在社区里看到一个网友提问关于 asp.net 中“” 的问题,所以还是想把这篇文章发到自己的博客上。虽然不是非常很高深的问题,但是还是应该多加留意…… ...
  • zhuzhu837_1
  • zhuzhu837_1
  • 2012年07月13日 09:57
  • 236

DataGridView绑定数据源后限制列显示

WinFrom 的 DataGridView 绑定数据源后,默认会显示所有数据属性的列。MSDN 中微软告诉我们可以用DataGridView 对象的 AutoGenerateColumns 来控制...
  • Robin022
  • Robin022
  • 2011年12月26日 09:37
  • 4960

ASPxGridView的数据绑定显示

近日跟着做了一个项目,用到了很多次ASPxGridView,以下是对绑定数据及对数据处理的总结。 绑定方法一下几种:首先拖入ASPxGridView控件(控件ID为ASPxGridView1) 添...
  • u012829938
  • u012829938
  • 2015年09月02日 12:31
  • 417

网页中控件绑定数据源小demo

最近一直在做一个B/S的小项目,刚看完牛腩,就可以有一次实践的机会,我觉的简直是上天太爱我的表现。虽然这个小项目功能逻辑没有牛腩那么复杂,但是要学习的东西还是很多,有过无力的阶段,但是总是要解决的啊,...
  • cd18333612683
  • cd18333612683
  • 2016年04月22日 15:50
  • 616

datatable绑定水晶报表

protected CrystalDecisions.Web.CrystalReportViewer RptView; private SqlConnection myConnection; priv...
  • jerrysbest
  • jerrysbest
  • 2010年09月02日 09:34
  • 1322

计数数据/计量数据

计数值和计量值的区别计数值和计量值的区别计数值和计量值的区别计数值和计量值的区别        通俗地说,凡是可以连续取值的,或者说可以用测量工具具体测量出小数点以下数值的这类数据,叫计量值数据,如长...
  • happypolo
  • happypolo
  • 2012年09月05日 14:45
  • 3562

TCP/IP 详解卷一 - TCP的交换数据流和成块数据流

TCP 报文段所携带的应用程序数据按照长度分为两种:交互数据和成块数据。          交互数据仅包含很少的字节。使用交互数据的应用程序(或协议)对实时性要求高,比如 Telnet、ssh 等。 ...
  • u012243115
  • u012243115
  • 2015年02月06日 16:00
  • 493

echart图表控件配置入门(常用图表数据动态绑定)

现在分别对折线图、柱状图、饼图、中国地图四类图表的数据绑定进行详细的介绍。echarts中其它的图表方法都差不多,只要了解官方的demo,按照指定的数据结构进行解析都能很方便的得到想要的结果; ...
  • football98
  • football98
  • 2016年10月10日 15:30
  • 3361
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:〈%# 〉与〈%= 〉的区别,显示数据与绑定数据
举报原因:
原因补充:

(最多只允许输入30个字)