Asp.net 跳过asp:repeater中的行/项

Asp.net 跳过asp:repeater中的行/项,asp.net,asprepeater,lightgallery,Asp.net,Asprepeater,Lightgallery,是否有可能跳过asp:repeater中的项目?我有和,我只需要将ul重复一次。因为它有id,id必须是唯一的 这里我需要跳过重复,然后继续重复标记 <asp:Repeater ID="rptBlogs" runat="server"> <ItemTemplate> <div class="blog-post"> <div style="display:none;" id="video<%# Eval("

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

    这里我需要跳过重复
    ,然后继续重复
  • 标记

    <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") %>">
    

    我认为中继器中的中继器可能允许您获得所需的内容,您只需调整绑定的数据即可

    看看这个答案


    如果这不起作用,那么您可以添加OnDataItemBound(类似于链接中显示的内容)来查找/删除服务器端的控件。

    如果不想,您不必呈现任何标记。您可以在ItemTemplate中添加条件逻辑来检查项目,以确定是否应呈现该项目。您可以查看如何在Web窗体标记中执行if语句。@mason我考虑过这一点,但如果我只想显示一次,条件会如何。听起来您的UL根本不应该在转发器中。我知道理想的情况是
      ,但由于html结构不可能,您可以添加一个变量来保持跟踪是否已添加。但是看起来你只是在避免这个问题,而不是花时间来组织你的标记。然后你的页面上会有多个UL。如果是有意的,那太好了。谢谢。最好不要它们,但现在我一直这么做,直到找到更好的方法为止。我向您展示了如何在标记中执行if语句。您可以使用
      if(!markupAlreadyAdded){/*添加标记并将markupAlreadyAdded设置为true*/}
      这样的逻辑来实现这一点。不过,我认为重新构造HTML会更干净。
      <ul id="lightgallery">
      
      $('[id^=lightgallery]')