http://www.pconline.com.cn/pcedu/empolder/wz/asp/10111/12466.html
这里说得很清楚,第一个是在DataBind()之后才调用,而第二个是程序运行前执行。
所以时间就是不一样的。主要说说第一个,<%#...%>里还可以调用c#的方法,如我的项目中的
<%# GetAttentionTo(Container)%>。另外,现在已经不用使用DataBinder.Eval(),Eval已经是父控件(或页面)的方法。可以用this.Eval("YYY")调用。而且VS2005中还有自动完成提示。(经常不灵)
(XXX)Container.DataItem["YYY"]也是<%#...%>的Container的一个常见用法,也可以参考MSDN DataBinder类。它接受Container作为参数。甚至,this.Bind("YYY")的写法也可以。。。
而上述链接里的例子说明,要使<%#...%>生效,如果是该tag在控件里,需要调用控件的DataBind(),如果直接在页面中,则需要页面的Page.DataBind().