asp.netasprepeaterlightgallery

skip a line/item in asp:repeater


Is there a possible way to skip an item in asp:repeater? I have <ul> and <li>s where I need the ul to be repeated only once. Since it has id and ids must be unique.

Here I need to skip repeating the <ul id="lightgallery"> then continue repeating the <li> tags.

<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>

I know the common sense fact where the structure should be:

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

But that can't be done because of the HTML structure.

Solved but still open to better ideas. See below for my solution.


Solution

  • I used:

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

    Instead of:

    <ul id="lightgallery">
    

    Then used jquery starts with selector:

    $('[id^=lightgallery]')