不一般的IF循环总结
最近项目中遇到了不按常规循环数据的情况,当时自己搞了很久,结果越高越乱,最终PM出马,解决了。
总结一下自己暴漏的问题实质:对循环理解的不透,从那开始,到那介绍。即:是否包含标签,此标签在循环内or外。
下面贴一张,让自己记住编程以来第一次遇到不一般的循环。
分上下两个 UL,上面UL 里面包含 四个 li(四张图片),下面 UL竖着四个li ,并且每一个li里面包含 三个 P。
解决方案一:分别查询两个UL的 Dt再绑定,需要在查询第二个里面排除 第一的四笔数据。
解决方案二:查询一个Dt,循环绑定,这就是不一般的循环,对于初入编程的我而言。
循环 Code
<ul class="video-list div-open"> #foreach($dr in $dttop16Album.Rows) #if($!{velocityCount}<=4) <li> <h2 class="content-pic-bg"><a href="/CloudLivePortal/LivePortal/albumvideolist.aspx?albumid=$!{dr.albumid}" target="_blank"><img src="$!{dr.albumCover}" onerror="imgOnerror(this)"/></a></h2> <p class="mt5"><a href="/CloudLivePortal/LivePortal/albumvideolist.aspx?albumid=$!{dr.albumid}" target="_blank" title="$!{dr.albumName}" class="video-title" style="width:140px;text-overflow:ellipsis; -o-text-overflow:ellipsis; white-space:nowrap; overflow:hidden; display:inline-block;">$!{dr.albumName}</a></p> <p>作者:<a href="javascript:void(0)">$KeyValueHelper.getUserNumber("$!{dr.userID}")</a></p> <p>视频:<a href="javascript:void(0)">$!{dr.CountAlbumVideo}</a></p> </li> #end #if("$!{velocityCount}"=="4" ||($dttop16Album.Rows.Count < 5 && "$!{velocityCount}"=="$dttop16Album.Rows.Count")) </ul> #end #if("$!{velocityCount}"=="5") <ul class="video-list cb div-open mt15"> #end #if("$!{velocityCount}"=="5" ||"$!{velocityCount}"=="8" ||"$!{velocityCount}"=="11" ||"$!{velocityCount}"=="14") <li> #end #if($!{velocityCount}>=5) <p><a href="/CloudLivePortal/LivePortal/albumvideolist.aspx?albumid=$!{dr.albumid}" target="_blank" title="$!{dr.albumName}"class="video-icon" >$!{dr.albumName}</a></p> #end #if("$!{velocityCount}"=="7" ||"$!{velocityCount}"=="10" ||"$!{velocityCount}"=="13" ||"$!{velocityCount}"=="16") </li> #end #if($dttop16Album.Rows.Count >= 5 && "$!{velocityCount}"=="$dttop16Album.Rows.Count") </ul> #end #end
总结:理解循环本质,注意边界问题。