Подкачка в повторителе

#c# #asp.net #gridview #repeater

#c# #asp.net #просмотр сетки #повторитель

Вопрос:

Точно так же, как у нас есть свойство pagesize в gridview, которое позволяет нам переключаться между страницами, в любом случае, я не могу включить ту же функциональность в repeater.

 <table id="myTable">
    <tbody>
        <asp:Repeater ID="Repeater1" runat="server"
            onitemcommand="addItem_OnClick" DataMember="DefaultView">
            <ItemTemplate>
            <tr>
                <td>

                <div class="product">
                <table border="0" cellpadding="0" cellspacing="0" width="100%">
                    <tr valign="top">
                        <td width="105"><asp:HyperLink ID="HLSysDet" runat="server"
                            NavigateUrl='<%# "/Product.aspx?productId="   Eval("ProductDescriptionId") %>'>
                            <asp:Image ID="Image1" runat="server" width="85" height="85"
                                ImageUrl='<%# Eval("Thumbnail")%>' border="0" />
                        </asp:HyperLink></td>
                        <td><ItemTemplate><a
                            href='<%# "/Product.aspx?productId="   Eval("ProductDescriptionId") %>'>
                        '<%# Eval("ProductName")%>'</a> </ItemTemplate></b><br />
                        <br />

                        Manufacturer: <%# Eval("Manufacturer")%><br />
                        <br />
                        <b>Rs <%# Eval("UnitPrice")%>
                        </b><br />
                        <br />
                        Weight: <%# Eval("Weight")%> Kg<br />

                        </td>
                        <td width="20"></td>
                        <td valign="bottom" width="130">
                        <%# Eval("Quantity")%>  in stock<br />


                        <asp:TextBox ID="_qty" runat="server" CssClass="textbox"
                            MaxLength="2" Text="1" Width="30"
                            Visible='<%# showBtn(Eval("Quantity")) %>' /> <asp:RangeValidator
                            ID="RangeValidator1" runat="server" ControlToValidate="_qty"
                            ErrorMessage="*" ForeColor="Red" MaximumValue="50"
                            MinimumValue="1"></asp:RangeValidator>
                        <div class="buttons"><span id="Span1" class="mandatory"
                            runat="server" visible='<%# isQty(Eval("Quantity")) %>'>
                        Sorry, this item is out of stock</span></div>




                        <div class="buttons"><br />
                        <asp:LinkButton ID="CommandButton" runat="server"
                            Text='Add to Cart' CssClass="positive" CommandName="Add"
                            CommandArgument='<%# Eval("ProductDescriptionId") %>'
                            Visible='<%# showBtn(Eval("Quantity")) %>' />
                        </div>




                        </td>


                    </tr>
                    </div>
                </table>
                </div>
                </td>
            </tr>
            </ItemTemplate>
        </asp:Repeater>
    </tbody>
</table>
<div class='pager'><a href='#' alt='Previous' class='prevPage'>Prev</a>
<span class='currentPage'></span> of <span class='totalPages'></span> <a
    href='#' alt='Next' class='nextPage'>Next</a></div>
  

Ответ №1:

Проверьте http://plugins .jquery.com/project/paginateTable.

По сути, это разбивка на страницы html-таблицы (которую вы можете создать с помощью repeater) с использованием jQuery.

Он прост в использовании, имеет параметры настройки. Я уже использовал это, работало просто отлично.

Редактировать

Вам пришлось бы создавать свою таблицу с помощью repeater. Ниже я привел краткий пример:

 <table id="myTable">
  <tbody>
      <asp:Repeater ...>
          <ItemTemplate>
              <tr><td><%# Eval('Description') %></td></tr>
          </ItemTemplate>
      </asp:Repeater>
   <tbody>
</table>
<div class='pager'>
   <a href='#' alt='Previous' class='prevPage'>Prev</a>
   <span class='currentPage'></span> of <span class='totalPages'></span>
   <a href='#' alt='Next' class='nextPage'>Next</a>
</div>
  

Затем ваш javascript должен вызвать функцию paginateTable для этого

 <script>
    $(document).ready(function () {
        $('#myTable').paginateTable({ rowsPerPage: 2 });
    });
</script>
  

Комментарии:

1. интересно … это означает, что мне придется обернуть repeater вокруг таблицы?

2. Странно, я сделал все, как вы сказали … но подкачки нет. Все элементы отображаются на одной странице …. не только по 2 на страницу … и кнопки next / previous ничего не делают.

3. даже приведенный в статье пример не работает … я также добавил jquery в свой src

4. Вы тоже добавили плагин?

5. У них есть живая версия на devlegion.com/?page_id=15 , это все, что я могу сделать, не видя вашего кода

Ответ №2:

Repeater and control предлагает быстрые и гибкие средства отображения данных на странице ASPX. Но он не предлагает встроенной функции подкачки.

Однако вы можете что-то с этим сделать…

Обратитесь к следующей странице, если хотите разобраться в этом:http://www.codeproject.com/KB/webforms/Aspnet_Repeater_Control.aspx

Ответ №3: