【问题标题】:How to add a class to a link if parent list item has children?如果父列表项有子项,如何将类添加到链接?
【发布时间】:2014-04-14 17:00:16
【问题描述】:

我正在使用“通用查看器”webpart 和分层转换在 Kentico 6 中构建引导菜单。到目前为止,我已经完成了结构,但是当他的父 <li> 有孩子时,我无法弄清楚如何将“下拉菜单”类添加到链接中。

这是我现在生成的代码:

<ul class="nav navbar-nav">
  <li>
    <a href="#">Some link</a>
    <ul>...</ul>
  </li>
</ul>

我正在努力实现这一目标:

<ul class="nav navbar-nav">
  <li>
    <a href="#" class="dropdown-toggle" data-toggle="dropdown">Some link</a>
    <ul>...</ul>
  </li>
</ul>

只有当父 &lt;li&gt; 嵌入了 &lt;ul&gt; 时,才应添加类和数据。

我应该使用宏转换还是有办法通过 ascx 转换来实现?

【问题讨论】:

    标签: asp.net kentico


    【解决方案1】:

    如果在某些子节点的情况下始终存在下拉菜单,您可以使用NodeChildNodesCount 值。

    <a href="#" <%# ((int)Eval("NodeChildNodesCount") > 0) ? "class=\"dropdown-toggle\" data-toggle=\"dropdown\"" : "" %>>Some link</a>
    

    如果有一些附加条件,如文档类型,您需要检索该特定条件的子节点数。您可以通过文档 API、帮助程序类或直接在 ASCX 转换中实现它。寻找 TreeProvider 类。请注意,这可能是性能密集型操作。我还会考虑通过 javascript 在客户端添加这些下拉类。

    【讨论】:

    • 谢谢@mivra,这行得通!您是否介意扩展您的答案并展示示例如何仅在子文档是“页面”菜单项时添加此类,或者在选中子文档“在导航中显示”时更容易。
    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 2018-11-04
    • 1970-01-01
    • 2016-10-18
    • 1970-01-01
    相关资源
    最近更新 更多