#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:
Вы можете использовать PagedDataSource.