在*.aspx页面代码中,<% %>和<#% %>有什么区别

【考点】
<% %>和<#% %>的理解。
【出现频率】
★★★☆☆
【解答】
<% %>是服务器端的输出指令,包含输出到页面的程序代码,类似ASP的服务器端代码编写方式。而<%# %>是数据绑定表达式语法,在数据显示控件中广泛使用。
【分析】
本题考查面试者对*.aspx页面中服务器端代码的认识。<% %>是*.aspx网页中的嵌入式代码块,主要用于保留与旧的ASP技术的兼容性。不过在大多数情况下,将嵌入式代码块用于复杂的编程逻辑并不是最佳做法,因为当页中的代码与标记混合时,很难进行调试和维护。除此之外,由于代码仅在呈现页的过程中执行,因此与将代码置于适当的页面处理阶段中执行代码相比,其灵活性大大降低。嵌入式代码块的部分用途包括:将控件元素或标记元素的值设置为函数返回的值。
ASP.NET支持分层数据绑定模型,该模型创建服务器控件属性和数据源之间的绑定。几乎任何服务器控件属性都可以通过<#% %>绑定到任何公共字段或属性,这些公共字段或属性位于包含页或服务器控件的直接命名容器上。使用Repeater、DetailsView、FormView、GridView等数据绑定模板时,都可使用<%# Eval("字段名") %>或<%# Bind("字段名") %>这样的语法来单向或双向绑定数据。对于页面和所有服务器控件,可用<%# %>对多种公共字段或属性作如下代码所示的绑定。
简单属性: <%# 服务器控件ID.属性%>
集合: <asp:GridView runat="server" ID="gd" DataSource=<%# 集合 %>></asp:GridView>
表达式: <%# ( 服务器控件ID.属性1 + "***" + 服务器控件ID.属性2) %>
方法结果: <%# 方法名称(参数) %>
虽然数据绑定语法与<% %>嵌入式代码块相似,但两者行为完全不同。后者代码在呈现页面时执行,而ASP.NET数据绑定语法仅在执行相应控件(或父控件)的DataBind方法时执行。
posted @ 2009-09-04 21:49  龙宫  阅读(2202)  评论(0编辑  收藏  举报