首页 新闻 搜索 专区 学院

关天Nvelocity循环嵌套数据源提供问题

0
悬赏园豆:5 [已解决问题] 解决于 2014-06-21 16:19

我的场景是很普通的,就是几个栏目,每个栏目下面都有文章。如何通过foreach嵌套把数据展示出来。示例图借鉴如下(有4个栏目,每个栏目下有各自的文章):

 

后台有基本的获取栏目列表GetAllCategoryList()、根据栏目id获取文章列表GetArticleListByCategoryId(int categoryid)等方法。

.cs中代码:

//TemplateHelper.RenderHtml是封装的Nvelocity方法

//提供数据

var data = new { CategoryList = GetAllCategoryList()};
Response.Write(TemplateHelper.RenderHtml("index.html", data));

HTML模板中:

<ul>

#foreach($category in $data.CategoryList)

<li><a href="/category/$category.id“>$category.name</a></li>

//这里获取这个栏目的文章列表该怎么写?

//后台的data该怎么提供数据?

//发现用ASPX自带的语法挺好写,用Nvelocity反而难写了

#end

</ul>

 

求帮忙,急。

DZCMS的主页 DZCMS | 初学一级 | 园豆:5
提问于:2014-03-30 16:58
< >
分享
最佳答案
0

你好,在后台写个公共的方法(根据栏目ID获取列表数据),然后加入到输出变量中,这样在前台循环的时候调用方法就好了

收获园豆:5
走zai 路上 | 菜鸟二级 |园豆:214 | 2014-04-05 21:32
其他回答(1)
0

可以在后获取栏目,文章的数据,

然后前台可以用循环嵌套,内循环在输出的时候加一个判断过滤,当所属的栏目ID==当前外循环栏目的ID时就输出

给你一个demo

#foreach($newsChannels in $Data.newsChannels)
<div class="collapsed">
  <span>$newsChannels.channelName</span>
    <ul>
      #foreach($newsClass in $Data.newsClass)
        #if($newsClass.channelID==$newsChannels.ID)
          <li><a href="#">$newsClass.className</a></li>
        #end
      #end
    </ul>
</div>
#end

i41187406 | 园豆:202 (菜鸟二级) | 2015-04-05 17:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册