在 Django 中,实现分页以在多个页面上显示查询项非常简单。使用 Ajax 仅更新页面中真正发生变化的部分也非常简单,而不是每次都加载整个页面。但是,当两者结合起来时,我发现它有点问题。
在下面的示例中,搜索结果应显示在适当的result_list.html
.
<form id="search-form" method="get" action=".">
{{ form.as_p }}
<input type="submit" value="search" />
</form>
<div id="search-results">
{% include "result_list.html" %}
</div>
结果列表.html:
{% if sales_items %}
{% for item in sales_items %}
<li>
<ul>
Search Result...
</ul>
</li>
{% endfor %}
{% if show_paginator %}
<div class="paginator">
...
(Page {{ page }} of {{ pages }})
</div>
{% endif %}
{% else %}
{% trans 'No Items found.' %}
{% endif %}
这个解决方案效果很好。因为每次我(通过 ajax)搜索某些东西时,包括分页的 result_list.html 都会被刷新。
问题:
但是现在如果我有一张桌子,我就不能再使用这种方法了。
<table class="table">
<thead>
<tr>
<th>...</th>
</tr>
</thead>
<tbody id="search_result">
{% include 'calls_list.html' %}
</tbody>
</table>
需要刷新的页位就在<tbody>
标签之间。因此 Calls_List.html 只返回<tr>
和<td>
可以理解的标签<tbody>
。我根本无法在其中粘贴分页器代码(与上面的示例不同):
{% if show_paginator %}
<div class="paginator">
...
(Page {{ page }} of {{ pages }})
</div>
{% endif %}
...因为表格的 tbody 不希望在那里找到 div 元素。
除非我第二次往返服务器以单独提取分页代码。我找不到一个干净的解决方案。
请问你有同样的情况,请问你是怎么解决的?
非常感谢,