首页 新闻 搜索 专区 学院

在Repeater控件中使用if语句的问题.请大家帮帮忙.

0
悬赏园豆:50 [已解决问题] 解决于 2008-12-08 21:21

Code
<asp:Repeater ID="rptDistricts" runat="server">
<ItemTemplate>
<div class="districtTitle"><h3>&gt;&gt; <%# Eval("Name") %></h3>
<%
Mju.Entity.Forums.BoardInfo boardInfo
= (Mju.Entity.Forums.BoardInfo)(rptDistricts.DataSource as IList)[row++];
if (boardInfo.SubBoardCount != 0)
{
%>
<span>分类版主: admin <img id="district_<%# Eval("BoardID") %>_img" src="../Images/collapsed_yes.gif" alt="展开/收起" title="展开/收起" onclick="collapseDistrict('district_<%# Eval("BoardID") %>');"/></span></div>
<table id="district_<%# Eval("BoardID") %>" border="0" cellpadding="0" cellspacing="0">
<thead>
<tr>
<th>版块</th>
<td class="nums">主题</td>
<td class="nums">贴子</td>
<td class="lastpost">最后发表</td>
</tr>
</thead>
<tbody>
<asp:Repeater ID="rptBoards" DataSource='<%# GetBoards((Container.DataItem as Mju.Entity.Forums.BoardInfo).BoardID) %>' runat="server">
<ItemTemplate>
<tr>
<th><%# Eval("Name") %><br />版块描述<br />版主: admin</th>
<td class="nums">22</td>
<td class="nums">27</td>
<td class="lastpost">f<br />by admin - 前天 12:20</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</tbody>
</table>
<% }
else
{
%></div><%}%>
</ItemTemplate>
</asp:Repeater>

这个是我的解决方法.
在http://blog.csdn.net/afritxia/archive/2004/10/22/146936.aspx 这里看到这个博主说到可以用自定义控件的方式实现,但是不知道如何做.

我把web.config中的ViewState禁掉,所以不能用复杂事件.

a-peng的主页 a-peng | 初学一级 | 园豆:28
提问于:2008-12-08 13:40
< >
分享
最佳答案
0

你的这个需求,应该是个树结构,不止一层吧?

建议你用一个UserControl表示出一个版面,然后在这个UserControl中进行判断,如果要显示的版面有子版面,用LoadControl递归调用UserControl完成显示所有版面

玉开 | 大侠五级 |园豆:8822 | 2008-12-08 15:05
其他回答(4)
0

看下下面的几篇文章吧

http://topic.csdn.net/t/20041021/15/3478270.html
http://space.cnblogs.com/question/3027/
http://www.newasp.net/tech/asp/14018.html

上不了岸的鱼 | 园豆:4611 (老鸟四级) | 2008-12-08 14:59
0

我一般做法是写用户控件

在用户控件里加个属性判断用什么模板

这个属性一般定义成枚举便于扩展

然后写格controldatabind方法公开给外部调用并绑定

数据是通过外部传参数到内部生成

 

而且我还是习惯form编程

不习惯吧逻辑写在aspx页面上

小眼睛老鼠 | 园豆:2774 (老鸟四级) | 2008-12-08 15:35
0

<%           
Mju.Entity.Forums.BoardInfo boardInfo = (Mju.Entity.Forums.BoardInfo)(rptDistricts.DataSource as IList)[row++];    
       if (boardInfo.SubBoardCount != 0)   {      } 

%>    

 

这些if语句应该在后台区实现。

要明确设计思想:

在前台一般就是显示Repeater的页面布局,定义显示的界面框架;后台才进行数据处理,将数据输出到前台定义好的显示框架中。

sl2008 | 园豆:407 (菜鸟二级) | 2008-12-08 16:09
0

老哥,看到你给的分这么高,特意进来顶下哈!:P

水言木 | 园豆:386 (菜鸟二级) | 2008-12-08 16:28
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册