【问题标题】:Refresh/redraw jquery datatables with data from django view使用来自 django 视图的数据刷新/重绘 jquery 数据表
【发布时间】:2017-01-20 20:08:56
【问题描述】:

我使用 jquery DataTables 1.10.0 在表格上显示一些数据。这就是我加载数据的方式:

var layer_data = $("#layer_data").DataTable({
  "scrollX": true,
  "aaData":whole_array,
  "iDisplayLength": 10
});

其中 whole_array 是一个数组数组,如:

[Array[7], Array[7], Array[7]

每个数组都有不同的值:

 0:"<button id="1" class="btn btn-info btn-sm _edit_save_btn" style="margin-bottom:5px;width:68px; background-color:#a7a3a3;border-color:#a7a3a3">Edit</button></br><button id="fid__1" class="btn btn-info btn-sm _add_save_btn" data-toggle="modal" data-target="#add_geometry" data-fid="afghanistan_test.1" style="background-color:#a7a3a3; border-color:#a7a3a3;margin-bottom:5px;width:68px;">Geometry</button></br><button id="fid__cancel__1"  class="btn btn-info btn-sm _cancel_btn" style="margin-bottom:5px;width:68px; background-color:#a7a3a3;border-color:#a7a3a3">Cancel</button>"
 1:"Afghanistan"
 2:"Badakhshan"
 3:...

我想要做的是在单击按钮时重绘/刷新表格。我读到有一些方法可以用ajax requests 做到这一点,但我认为这不是我的情况,因为数据来自在页面加载时初始化的 django 视图。

【问题讨论】:

  • 为什么不发出 ajax 请求来(重新)填充表格?
  • #Sayse 部分数据来自 django 视图,其他一些(如 html 按钮)是使用 jquery 构建的。我将如何使用 ajax 重新填充表格?

标签: django datatables


【解决方案1】:

您想使用 JSONReponseMixin 之类的东西并让您的视图只发送数据。

class MyView(JSONResponseMixin, AjaxResponseMixin , TemplateView):         
    def get_ajax(self, request, *args, **kwargs):
        data = ['Country', 'Country']
        return self.render_response(json.dumps(data))

当您从 jquery ajax 调用查看时,它只会发回数据并生成 html。

您也可以不执行 json 并让视图返回仅包含表格的 html 并替换页面中的 html。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-28
    • 2015-09-29
    • 1970-01-01
    • 2014-01-16
    • 1970-01-01
    • 2017-10-22
    • 2018-12-30
    • 2014-08-22
    相关资源
    最近更新 更多