別のリピーター内にネストされたリピーターを使用してデータのリストを生成する ASP.NET ページがあります。それは、次のような効果があります。
<asp:Repeater>
<ItemTemplate>
<span><%#Eval("Data1") %></span>
<!-- and many more -->
<asp:Repeater DataSource='<%#Eval("Data2")%>'>
<HeaderTemplate>
<ul>
</HeaderTemplate>
<ItemTemplate>
<li><%#Container.DataItem%></li>
</ItemTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
(C#) コード ビハインドでは、基本的に LINQ を使用して XML ドキュメントから情報のリストを取得し、その情報を最初のリピーターにバインドしています。
これに対する答えを探していると、ネストされたリピーターのデータが空かどうかを判断する方法のようです。そうである場合は、リピーターの可視性を false に設定します。
残念ながら、コード ビハインドではなく、インラインで行う方法を特定できませんでした (これは、私が行っていることで必ずしも機能するとは限らないためです)。
私のページは現在検証されていないため、Data2 のないアイテムの ul は空になってしまい、順序付けられていないリストを使い続けたいので、あなたの助けを求めます.
何か案は?
ありがとう!
アップデート:
コードビハインドで実行できる可能性が非常に高いため、それが役立つ場合、LINQ はこの効果をもたらすものです。
var x = from y in z
select new {
Data1 = d,
// etcetera
Data2 = (from j in k
where j.Value != String.Empty
select j.Value).ToList()
};
blah.DataSource = x;
blah.DataBind();