2016-12-03 76 views
0

所以我真的很挣扎让jsGrid和我的Django站点一起运行,特别是使用控制器从ajax请求中加载表中的数据。它不工作,所以我设置了这个非常基本的配置,只是为了看看我的控制器中loadData函数发生了什么。使用下面的配置,在控制台中打印的唯一东西是“In Script”。所以它显然不会在控制器中调用loadData。也许这个简单的“测试”配置也不正确。请问我在这里错过了什么?它必须是愚蠢的东西。jsGrid loadData没有被调用

{% extends 'layouts/layout_1.html' %} 

{% block title %}Demos{% endblock %} 

{% block content%} 

<div id="demos-js-grid"></div> 

{% endblock %} 

{% block other_js %} 

<script> 

$(document).ready(function() { 

    console.log("In Script.") 
    $("#demos-js-grid").jsGrid({ 

     onDataLoading: function(args) { 
      console.log("On Data loading.") 
     }, 

     width: "100%", 
     height: "100%", 

     inserting: true, 
     editing: true, 
     sorting: true, 

     autoLoad: true, 

     controller: { 
      loadData: function(filter) { 
       console.log("loadData being called.."); 
      }, 
      insertItem: function(item) { 
       console.log("insertItem being called..") 
      }, 
      updateItem: function(item) { 
       console.log("updateItem being called..") 
      }, 
      deleteItem: function(item) { 
       console.log("deleteItem being called..") 
      } 
     }, 

     fields: [ 
      { name: "Client Status", type: "text", width: 50 }, 
      { name: "Bee Status", type: "text", width: 50 }, 
      { name: "Store Status", type: "text", width: 50 }, 
      { name: "Region", type: "text", width: 100 }, 
      { name: "Chain", type: "text", width: 100 }, 
      { name: "Store", type: "text", width: 150 }, 
     ] 
    }); 
}) 


</script> 

{% endblock%} 
+0

您是否希望您拥有带该id的页面上的'div'元素,并且'script'块在这个元素之后? – tabalin

+0

您几乎可以肯定需要将整个事件包装在jQuery'$(function(){...})中,以确保它只在DOM准备就绪时运行。 –

+0

那么很可能这是当你初始化网格时没有div的问题。所以最好遵循@ DanielRoseman的建议。 – tabalin

回答

0

选项应该是autoload: true,而不是autoLoad

实际上,由于自动加载未激活,网格未加载,但您仍然可以自己加载它调用loadData方法。