我的前端使用bootstrap、jquery。后端使用django。我用一个datatable来显示数据,发生了以下问题:
1)页面seach搜索框不工作。
不管输入什么都搜不到(表格所有内容消失),点击右边的×号也不能回退;
2)没有分页。
我的表格内容是这样生成的:
1)django生成一个json,利用jq的ajax得到;
2)jq循环叠加一堆、,然后用.htm()方法在datatable的tbody区写入表格信息。
隐约感觉搜索故障、不分页问题是不是与这个写入方式有关?请指教!!
我的bootstrap datatables为什么不能分页和查询?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 「已注销」 2023-01-18 17:56关注
是的,这些问题可能是因为你使用的方式不能正确支持datatable的搜索和分页功能。
首先,在使用ajax获取json数据并通过jquery循环叠加写入表格时,datatable并不能正确处理搜索和分页功能。你需要使用datatable提供的server-side processing来解决这个问题。
具体来说,你需要在后端使用Django将数据库中的数据查询出来,并使用JsonResponse将数据以json格式返回给前端。然后在前端使用datatable的ajax配置项来获取数据,并在datatable初始化时传入这些配置。
其次,分页功能,你可以在后端使用分页库来查询数据库并返回指定页的数据,然后在前端使用datatable的配置项来控制分页。
下面是一个示例代码:
# views.py from django.http import JsonResponse from django.core import paginator def get_data(request): data = YourModel.objects.all() paginator = Paginator(data, 10) page = request.GET.get('page') data = paginator.get_page(page) return JsonResponse(data, safe=False) # js $(document).ready(function() { var table = $('#example').DataTable({ "processing": true, "serverSide": true, "ajax": { "url": "/get_data/", "dataType": "json", "type": "GET", }, "columns": [ {"data": "field1"}, {"data": "field2"}, {"data": "field3"}, ] }); });
这样你就可以得到一个支持搜索和分页的datatable了。
另外,还需要注意几点:
你需要在后端配置路由,使得前端能够请求/get_data/这个路径获取数据。
你需要在前端配置表格的HTML结构,使得datatable能够正确渲染表格。
你需要在后端配置数据模型,使得能够正确查询数据库并返回数据。
你需要在前端配置列的数据类型,使得datatable能够正确渲染每一列的数据。
总的来说,通过使用datatable的server-side processing来解决搜索和分页问题,是一个比较好的解决方案。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥170 如图所示配置eNSP
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效
- ¥15 悬赏!微信开发者工具报错,求帮改
- ¥20 wireshark抓不到vlan
- ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
- ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
- ¥15 stata安慰剂检验作图但是真实值不出现在图上
- ¥15 c程序不知道为什么得不到结果
- ¥15 键盘指令混乱情况下的启动盘系统重装