问题思路:如何根据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啦。