У меня есть карта сайта asp.net с одноуровневым выпадающим меню.Я использую следующий код на главной странице, чтобы отобразить их в раскрывающемся меню, генерируя <li>
и <ul>
.Он работает нормально, проблема в том, что даже если у некоторых элементов нет дочерних элементов, он генерирует пустой, что приводит к отображению выпадающего значка.Как остановить генерацию пустого <ul>
, проверив количество дочерних узлов.
<!--- Menu -->
<div id="horizontalcssmenu" class="horizontalcssmenu">
<asp:SiteMapDataSource ID="SiteMapDataSource1" ShowStartingNode="false" runat="server" />
<ul id="cssmenu1">
<li><a id="A1" href="index.aspx" runat="server">Home</a></li>
<asp:Repeater ID="foo" DataSourceID="SiteMapDataSource1" EnableViewState="false"
runat="server" onitemcommand="foo_ItemCommand">
<ItemTemplate>
<li>
<a href='<%#Eval("url") %>'><%#Eval("Title") %></a>
<ul>
<asp:Repeater ID="bar" DataSource='<%# ((SiteMapNode) Container.DataItem).ChildNodes %>' runat="server">
<ItemTemplate>
<li><a href='<%#Eval("url") %>'><%#Eval("Title") %></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>
<!-- Menu End -->
В выходном коде отображается что-то вроде этого
<!--- Menu -->
<div id="horizontalcssmenu" class="horizontalcssmenu">
<ul id="cssmenu1">
<li><a href="index.aspx" id="ctl00_A1">Home</a></li>
<li>
<a href='/SVSS/StudentFullDetails.aspx'>Student Details</a>
<ul>
</ul>
</li>
<li>
<a href='/SVSS/StudentMonthlyAttendance.aspx'>Attendance</a>
<ul>
</ul>
</li>
<li>
<a href='/SVSS/MyNotice.aspx'>Notice</a>
<ul>
</ul>
</li>
</ul>
</div>
<!-- Menu End -->