在 asp:repeater 中跳过 line/item

skip a line/item in asp:repeater

是否有可能跳过 asp:repeater 中的项目?我有 <ul><li>s,我只需要将 ul 重复一次。因为它有 id 并且 ID 必须是唯一的。

在这里我需要跳过重复 <ul id="lightgallery"> 然后继续重复 <li> 标签。

<asp:Repeater ID="rptBlogs" runat="server">
  <ItemTemplate>
      <div class="blog-post">
              <div style="display:none;" id="video<%# Eval("ID") %>">
                  <video class="lg-video-object lg-html5" controls preload="none">
                      <source src="<%# !Eval("ArticleTypeValue").ParseString()%>" type="video/mp4">
                          Your browser does not support HTML5 video.
                  </video>
              </div>
              <div class="post-left-img">
                  <ul id="lightgallery"> //this needs to be skipped 
                      <li class="video" style="position: relative;" data-poster="/<%# Eval("ThumbImage").ParseString() %>" data-sub-html="<%# Eval("Description") %>" data-html="#video<%# Eval("ID") %>" >
                          <a href="javascript:void(0)">
                          <img class="img-responsive" src="/<%# Eval("ThumbImage").ParseString() %>" />
                              <div class="demo-gallery-poster">
                                  <img src="/assets/images/play-button.png">
                              </div>
                          </a>
                      </li>
                  </ul>
              </div>
  </ItemTemplate>
</asp:Repeater>

我知道结构应该是什么的常识:

<ul>
<asp:repeater>
...
</asp:repeter>
</ul>

但由于 HTML 结构,无法做到这一点。

已解决,但仍有更好的想法。请参阅下面的解决方案。

我用过:

<ul id="lightgallery<%# Eval("ID") %>">

而不是:

<ul id="lightgallery">

然后使用 jquery 以选择器开头:

$('[id^=lightgallery]')

我认为你的转发器中的转发器可能会让你得到你正在寻找的东西,你可能只需要调整你绑定的数据。

看看这个答案 Repeater in Repeater

如果这不起作用,那么您可以将 OnDataItemBound(类似于 link 中显示的内容)添加到 find/remove 服务器端的控件。