当前位置: 代码迷 >> ASP.NET >> repeater 嵌套有关问题
  详细解决方案

repeater 嵌套有关问题

热度:4348   发布时间:2013-02-25 00:00:00.0
repeater 嵌套问题
问题思路:如何根据repeater2中是否有数据进行判断repeater1中h3是否以链接方式展示
C# code
<div class="pro_list">    <ul id="help_list">        <asp:Repeater ID="Repeater1" runat="server">            <ItemTemplate>                <li>                    <h3 class="ta2 <%# flag(Eval("selfcode").ToString(),2)%>">                        <a href='productslist.aspx?id=<%# Eval("selfcode") %>' title='<%# Eval("thename") %>'>                        <%# areahelper.substr(Eval("thename").ToString(),30) %></a></h3>                    <ul style="display:none">                        <asp:Repeater ID="repeater2" runat="server" DataSource='<%# twotype(Eval("selfcode").ToString())%>'>                            <ItemTemplate>                                <li><a href='productslist.aspx?id=<%# Eval("selfcode") %>' title='<%# Eval("thename") %>'>                        <%# areahelper.substr(Eval("thename").ToString(),30) %></a></li>                        <div style="clear:both;"></div>                            </ItemTemplate>                        </asp:Repeater>                    </ul>                </li>                <div style="clear:both;"></div>            </ItemTemplate>        </asp:Repeater>    </ul></div>


------解决方案--------------------------------------------------------
这样写?建议在数据查询的时候把状态给repeater1的数据源,然后用三元 来判断
------解决方案--------------------------------------------------------
twotype(Eval("selfcode").ToString()) 你的这个结果应该是DataTable吧


就是更具返回回来的行数 绑定你的连接是输出还是不输出
<%# twotype(Eval("selfcode").ToString()).Rows.Count==0 ? areahelper.substr(Eval("thename").ToString(),30) : “ <a href='productslist.aspx?id="+ Eval("selfcode") +"' title='"+ Eval("thename") +"'>"+ areahelper.substr(Eval("thename").ToString(),30) +"</a> ” %>
用这句话直接盖掉你的超链接应该就可以了


------解决方案--------------------------------------------------------
我觉得应该这样。

在查询repeater1的数据时,就顺便把“有没有子表数据”当作一个自定义字段查出来,例如Flag字段,0表示无,1表示有。

然后,绑定repeater1的数据时,就可以直接根据flag的值来决定h3是否要链接。

这样做,就很easy啦。
  相关解决方案