页面内<%# %>与<% %>获取数据的方法有什么区别? 如上,还有<%# values %> 和 <% =values%> 有什么区别?谢谢。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.chnhack.com/Dev/2011/0501/27757.html <%# values %> 一般用于数据绑定;<% =values%>自由度大可以自己写一些函数,写一些逻辑 <%#values%> 数据绑定时使用<%=values%> 可以调用自定义的方法、属性等 %= %>与<%# %>的区别在于:绑定时机不同,<%# %>是在控件调用DataBind函数的时候才被确定。 <%# %>: 是在绑定控件DataBind()方法执行时被执行,用于数据绑定;<%= %>: 是在程序执行时被调用,可以显示后台变量值;<% %>: 是内联代码块里面可以在页面文件*.aspx或*.ascx文件里面嵌入后台代码;<%@ %>:是在*.aspx页面前台代码中导入命名空间。 本质来说<% %>之间都是写后台代码,即C#(或者其他语言)代码。<%=alues %>,可以调用到后台程序,即.cs文件的非私有变量或者方法,是因为前台ASPX文件编译生成的类实际是继承于后台类。所以能够访问到。 这个不能理解成前台“调用”后台。前台调用后台只有两种方法:提交表单和ajax。理解成“宏替换”接近一些。本质上是生成页面时,把服务端方法的执行结果替换掉<%=%>里的东西。aspx实际上也不是什么“前台”文件,而是后台生成以后传给前台。 <%# %> 语法ASP.NET 引入了一种新的声明语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。下面的列表包含从多个源进行简单数据绑定的示例:* 简单属性(用于客户的语法):<%# custID %> * 集合(用于订单的语法): <asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">* 表达式(用于联系人的语法): <%# ( customer.First Name + " " + customer.LastName ) %> * 方法结果(用于未结清余额的语法): <%# GetBalance(custID) %> 再补充一点我经常用的。比如用js操作页面,但是需要后台的数据。public string requestURL="后台数据";$(function(){var requestURL=<%= requestURL%>}) 很对。但是要补充补充一下。确切地说,<%# %>被asp.net编译程序翻译成为宿主控件在触发 OnDataBinding 时要执行的为控件的所绑定属性赋值的代码。例如是在ForeColor='<# xxxx() %>'上绑定的,那么就被asp.net翻译为这个控件的OnDataBinding事件响应时,执行 控件.ForColor = xxxx();这样的代码。而 <%= %>被asp.net编译程序翻译为宿主控件(最外层的就是Page了)要执行Render方法中要调用的一个向HtmlWriter书写内容的代码,例如<%= xxxx() %>这就被asp.net翻译为这个控件自身的Render方法中要调用的一个方法中执行 writer.Write( xxxx() );这样的代码。所以第一个是为控件的属性赋值,而且是在响应DataBinding事件时才可能被赋值,你可以任何时候去调用控件的DataBind(),而且可以反复调用。而第二个根本不是想某一个属性赋值,而是向最终的输出流直接写,而且只能是在页面最后要输出html流时才执行。 前者的断言那是因为你只知道数据绑定。假设你写<asp:Label Text='<%# XXOO %>' ID="xo" />在应用程序中你可以随时调用xo.DataBind()来绑定它。这个老爹XXOO可以“写一些函数,写一些逻辑”,而且可以随时修改随时重新执行xo.DataBind()。当然要比后者自由度大很多。 <%# %>: 是在绑定控件DataBind()方法执行时被执行,用于数据绑定;<%= %>: 是在程序执行时被调用,可以显示后台变量值 <%# %>:绑定数据源<%= %>:自定义的方法 <%# values %> 和 <% =values%> 这都只是一个输入服务器变量而已,怎么写都行如果在Repeater中 尽量用<%# values %> 用<% =values%> 也不会出现问题但 用于绑定数据源时 例如 <%# Eval("values")%> 这种写法时 开头必须用 “#” 而不能用 “=” 简单的理解 <%= %> 表示输入服务器端定义的变量 或者方法 <%# %> 表示的则是绑定数据源 <%# 显示 %> 和 <% =绑定%> 还是那句话,有问题先谷姐在度娘。最后选择发论坛,找技术群等方法。少年,你还是太年轻啊!!!==================今天下午心情不好,就在CSDN混了。。========================= <%# %>: 是在绑定控件DataBind()方法执行时被执行,用于数据绑定;<%= %>: 是在程序执行时被调用,可以显示后台变量值; <%# %> 是读取绑定<%= %> 是变量 急求 有做过数字签名的么? 合并 datetable 问题 在线等!! 搜索文件时怎样搜索多个表。 数据结构与程序的关系 初级IIS的问题吗? 怎么取得DATALIST 的编辑模板列里的控件? 为何不能更新access库中的内容? 哪位大哥有没有.NET购物车源码?要自己写的,网上的都不能理解!! TSQL语句中如何获得语句查询的值? 急,在线考试,RadioButton问题。。 关于vs2003编译报错的问题
<% =values%>自由度大可以自己写一些函数,写一些逻辑
<%=values%> 可以调用自定义的方法、属性等
<%= %>: 是在程序执行时被调用,可以显示后台变量值;
<% %>: 是内联代码块里面可以在页面文件*.aspx或*.ascx文件里面嵌入后台代码;
<%@ %>:是在*.aspx页面前台代码中导入命名空间。
<%=alues %>,可以调用到后台程序,即.cs文件的非私有变量或者方法,是因为前台ASPX文件编译生成的类实际是继承于后台类。所以能够访问到。
理解成“宏替换”接近一些。本质上是生成页面时,把服务端方法的执行结果替换掉<%=%>里的东西。
aspx实际上也不是什么“前台”文件,而是后台生成以后传给前台。
ASP.NET 引入了一种新的声明语法 <%# %>。该语法是在 .aspx 页中使用数据绑定的基础。所有数据绑定表达式都必须包含在这些字符中。下面的列表包含从多个源进行简单数据绑定的示例:
* 简单属性(用于客户的语法):<%# custID %>
* 集合(用于订单的语法):
<asp:ListBox id="List1" datasource='<%# myArray %>' runat="server">
* 表达式(用于联系人的语法):
<%# ( customer.First Name + " " + customer.LastName ) %>
* 方法结果(用于未结清余额的语法): <%# GetBalance(custID) %>
很对。但是要补充补充一下。确切地说,<%# %>被asp.net编译程序翻译成为宿主控件在触发 OnDataBinding 时要执行的为控件的所绑定属性赋值的代码。例如是在ForeColor='<# xxxx() %>'上绑定的,那么就被asp.net翻译为这个控件的OnDataBinding事件响应时,执行
控件.ForColor = xxxx();
这样的代码。
而 <%= %>被asp.net编译程序翻译为宿主控件(最外层的就是Page了)要执行Render方法中要调用的一个向HtmlWriter书写内容的代码,例如<%= xxxx() %>这就被asp.net翻译为这个控件自身的Render方法中要调用的一个方法中执行
writer.Write( xxxx() );
这样的代码。
所以第一个是为控件的属性赋值,而且是在响应DataBinding事件时才可能被赋值,你可以任何时候去调用控件的DataBind(),而且可以反复调用。而第二个根本不是想某一个属性赋值,而是向最终的输出流直接写,而且只能是在页面最后要输出html流时才执行。
前者的断言那是因为你只知道数据绑定。假设你写<asp:Label Text='<%# XXOO %>' ID="xo" />在应用程序中你可以随时调用xo.DataBind()来绑定它。这个老爹XXOO可以“写一些函数,写一些逻辑”,而且可以随时修改随时重新执行xo.DataBind()。当然要比后者自由度大很多。
<%= %>: 是在程序执行时被调用,可以显示后台变量值
<%= %>:自定义的方法
<%# %> 表示的则是绑定数据源
<%= %>: 是在程序执行时被调用,可以显示后台变量值;
<%= %> 是变量