ASP.NET尖括号百分号绑定数据
2012-10-09 15:28
330 查看
<%@ 表示:引用
<%# 表示:绑定
<%= 表示:取值
<%= 变量名%>
<%# 要绑定的字段名%> 或者 <%# 调用后台的方法名%>
<%%><%%>可以加入判断语句或代码
<div id="leftMenu" class="menu">
<%if (GetCurrentRoleLower() == "user" || GetCurrentRoleLower() == "admin"){ %>
<h3><span class="m1"></span><a href="javascript:void(0)" style="color:#33567c; "> 审核管理</a></h3>
<ul id="Ul1" runat="server">
<li><a id="menuSubmitAudit" href="javascript:void(0)">报送审核</a></li>
<li><a id="menuViewAudit" href="javascript:void(0)" >查看审核</a></li>
</ul>
<%}%>
、<%= %>和<%# %>有点区别。
在后台代码中,与第一种方式唯一不同的,就是需要调用DataBind方法。只有执行了相应控件的DataBind方法,前台代码中这些控件中使用<%# %>的绑定才会发生(并且控件内部的所有绑定也会发生,比如又嵌套了一个绑定后台数据的控件),否则得话将不会被赋值,而是默认空值。上面我们用的是Page的DataBind方法,那么整个页面所有绑定都会执行。当然,如果我们只执行DataList1或者DropDownList1的DataBind方法,那么只有相应控件的绑定才会发生。需要注意的是,这里说的需要执行DataBind包括了显示和隐式执行,有些数据绑定类控件,当它们通过
DataSourceID 属性绑定到数据源控件时,会通过隐式调用 DataBind 方法来执行绑定。这时就不必显示的再次调用了。
两者区别:
两种绑定方式上,他们的约束基本相同,都要求与属性匹配,出现在他们可以出现的位置。后者的使用位置更广泛,尤其是支持服务器端控件和绑定数据集合。后台代码方面,后者需要调用DataBind才能完成绑定,前者则没有这方面要求。这里主要区别一下两者在执行机制上的区别:<%=...%>是在程序执行时调用(应该是在页面的RenderControl事件过程中完成的,也就是通常情况下我们可以看到的后台代码都执行完毕后再去到前台代码中进行赋值绑定),而<%#... %>是在DataBind()方法之后被调用,一旦调用了DataBind(),则它对应的控件将绑定变量,因此,请注意:如果在DataBind()后再修改变量,那么绑定的就不是最新值了,这就需要在完成变量的赋值后,再去DataBind()。其实这两种方式,它的运行过程可以在VS中通过设置断点来看看,看两者的绑定赋值分别是在什么时候发生的。
<%# 表示:绑定
<%= 表示:取值
<%= 变量名%>
<%# 要绑定的字段名%> 或者 <%# 调用后台的方法名%>
<%%><%%>可以加入判断语句或代码
<div id="leftMenu" class="menu">
<%if (GetCurrentRoleLower() == "user" || GetCurrentRoleLower() == "admin"){ %>
<h3><span class="m1"></span><a href="javascript:void(0)" style="color:#33567c; "> 审核管理</a></h3>
<ul id="Ul1" runat="server">
<li><a id="menuSubmitAudit" href="javascript:void(0)">报送审核</a></li>
<li><a id="menuViewAudit" href="javascript:void(0)" >查看审核</a></li>
</ul>
<%}%>
、<%= %>和<%# %>有点区别。
在后台代码中,与第一种方式唯一不同的,就是需要调用DataBind方法。只有执行了相应控件的DataBind方法,前台代码中这些控件中使用<%# %>的绑定才会发生(并且控件内部的所有绑定也会发生,比如又嵌套了一个绑定后台数据的控件),否则得话将不会被赋值,而是默认空值。上面我们用的是Page的DataBind方法,那么整个页面所有绑定都会执行。当然,如果我们只执行DataList1或者DropDownList1的DataBind方法,那么只有相应控件的绑定才会发生。需要注意的是,这里说的需要执行DataBind包括了显示和隐式执行,有些数据绑定类控件,当它们通过
DataSourceID 属性绑定到数据源控件时,会通过隐式调用 DataBind 方法来执行绑定。这时就不必显示的再次调用了。
两者区别:
两种绑定方式上,他们的约束基本相同,都要求与属性匹配,出现在他们可以出现的位置。后者的使用位置更广泛,尤其是支持服务器端控件和绑定数据集合。后台代码方面,后者需要调用DataBind才能完成绑定,前者则没有这方面要求。这里主要区别一下两者在执行机制上的区别:<%=...%>是在程序执行时调用(应该是在页面的RenderControl事件过程中完成的,也就是通常情况下我们可以看到的后台代码都执行完毕后再去到前台代码中进行赋值绑定),而<%#... %>是在DataBind()方法之后被调用,一旦调用了DataBind(),则它对应的控件将绑定变量,因此,请注意:如果在DataBind()后再修改变量,那么绑定的就不是最新值了,这就需要在完成变量的赋值后,再去DataBind()。其实这两种方式,它的运行过程可以在VS中通过设置断点来看看,看两者的绑定赋值分别是在什么时候发生的。
相关文章推荐
- ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)
- ASP.NET 内联代码、内联表达式、数据绑定表达式使用方法罗列(形式就是常说的尖括号 百分号 等于号 井号)
- 深入剖析微软ASP.NET Ajax中的数据绑定架构上篇之一
- ASP.NET 数据绑定常用代码 (转贴)
- ASP.NET GirdView后台动态绑定数据
- ASP.NET 2.0 的数据绑定函数Eval()机制
- ASP.NET中的数据绑定:哪个更快?
- asp.net数据绑定与显示等笔记
- asp.net的eval,bind,container.dateitem,数据绑定的研究
- Asp.NET开发笔记--文本框的数据绑定与操作
- asp.net代码中尖括号和百分号的含义
- 深入ASP.NET数据绑定(下)——多样的绑定方式
- ASP.NET利用DataBinder.Eval来绑定数据
- ASP.NET数据绑定表达式语法
- asp.net中的各种数据绑定使用
- asp.net数据绑定
- 一起谈.NET技术,强类型ASP.NET数据绑定改进版之第2版
- ASP.NET实现模板中的数据绑定
- ASP.NET 2.0 中实现模板中的数据绑定系列
- ASP。net数据绑定语法