2016-12-03 6 views
0

Так что я действительно пытаюсь запустить jsGrid с моего сайта Django, в частности, используя контроллер для загрузки данных в таблицу из запроса ajax. Он не работал, поэтому я установил эту самую базовую конфигурацию, чтобы посмотреть, что происходит с моей функцией loadData в моем контроллере. Используя приведенную ниже конфигурацию, единственное, что печатается на консоли, - «В скрипте». поэтому он явно не вызывает 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

У вас есть элемент 'div' на странице с этим id и что блок' script' идет после этого элемента? – tabalin

+0

Вам почти наверняка нужно обернуть все это в jQuery '$ (function() {...})', чтобы убедиться, что он работает только после того, как DOM готов. –

+0

Тогда, скорее всего, это проблема отсутствия div при инициализации сетки. Поэтому лучше следовать рекомендациям DanielRoseman. – tabalin

ответ

0

Опция должна быть autoload: true, вместо autoLoad.

Фактически, в настоящее время, поскольку автоматическая загрузка не активирована, сетка не загружается, но вы все равно можете загрузить ее, вызывая метод loadData самостоятельно.