#:是数据绑定用。
=:是直接输出用。
那么<%# %>中可以写后台cs文件中定义的方法,同理<%= %>也可以写,这其中有什么区别?
@微澜: 从某种意义上来说,他们都等同于代码:
<%
Response.Write(...)
%>
但,简单的赋值输出(=)只能输出固定的内容(固化的内容),比如调用函数的参数固定、属性或变量的值固定等。而绑定输出(#)则不同,一来,绑定输出必须在执行数据绑定操作(也就是DataBind)的时候才会执行,二来,绑定输出能动态的使用绑定数据源的数据特性。
当然,简单赋值输出也可以用在数据绑定里,在那里把数据绑定内容作为参数传递给必要的函数之类的。
MS定义他们相似性很强的输出操作,目的也就是在于区分他们的应用场合。即便他们都可以同时应用在数据绑定输出中,MS还是建议非必要还是尽量在数据绑定时使用绑定输出。当然,非数据绑定输出时则没的选择,只能使用简单的赋值输出方式。
楼上正解