绑定控件中<%#Eval()%>和<%=变量%>的执行顺序

来源:互联网 发布:达梦数据库6.0下载 编辑:程序博客网 时间:2024/05/17 16:46

repeater.databind()后,控件itemtemplate和AlternatingItem模版中的 控件中的 属性=<%#Eval()%> 先运行赋值绑定一行,然后再触发这一行的repeater_ItemDataBound()事件函数,然后再 属性=<%#Eval()%> 先运行赋值绑定一行,然后再触发这一行的repeater_ItemDataBound()事件函数(因此在该事件函数中可以得到该行中被Eval绑定的属性值),以此类推。因此总是先算完<%#Eval()%><%#Bind()%>,在最后一个Item行的的repeater_ItemDataBound()事件函数执行完毕之后,再执行<%=变量%>,然后,再转回绑定程序的代码repeater.Bind(),并继续向下执行。

aspx的源码文件中按照出现的顺序对<%=变量%>之类的赋值,repeater里面嵌套控件包含<%=变量%>,如其位置在repeater对象自身的<%=变量%>之前,则先算嵌套控件里面的<%=变量%>,再算repeater自身包含对象的<%=变量%>,)。

 

如果要想同步绑定变量,想了个办法,随便绑定Eval()一个字段,软后将需要在这里显示的内容变量直接放到后面的格式化字符串里,Name=<%#Eval("UcountyId",county)%>

 


footertemplate中的控件不在ItemDataBound()(headertemplate应该也是这样)中绑定,

 

这之前还未曾注意过这些问题,以后再验证验证

原创粉丝点击