dojo gridx не находит данные хранилища памяти

Я пытаюсь заставить работать gridx. Я начинаю с жестко закодированных данных и позже перейду к массиву данных json. Когда я запускаю приведенный ниже код, все, что я получаю, это заголовки. Я моделировал код после образцов Grid Playgound. Я подумал, что это может быть из-за того, что я использовал Store() вместо Memory(). Однако, когда я использую "var store = new Memory({", я больше не получаю заголовки...

Потратил много времени на поиск в Интернете, но большинство примеров, кажется, предполагают довольно много ранее существовавших знаний о gridx.

Вот мой код: ‹%@page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>

<title>testSelect</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script type="text/javascript"
    data-dojo-config="isDebug: true, async: true, parseOnLoad: true"
    src="dojo/dojo/dojo.js"></script>

<script type="text/javascript">
require(
[ "dojo", "dojo/parser" ],
// Callback function, invoked on dependencies evaluation results
function(dojo) {
    dojo.ready(function() {
    });
});
</script>

<script type="text/javascript">
require([
    "gridx/Grid",
    "gridx/core/model/cache/Sync",
    "gridx/modules/VirtualVScroller",
    "gridx/modules/ColumnResizer",
    "gridx/modules/extendedSelect/Row",
    "gridx/modules/SingleSort",
    "dojo/store/Memory",
    "dojo/domReady!"
], function(Grid, Cache, 
    VirtualVScroller, ColumnResizer, SelectRow, 
    SingleSort, Store){
    //Create store here...
    //var store = new Store(...);
    var store = new Store({
    data: [
            {id: "1", name:"name1", genre:"genre1", composer:"composer1", year:"1952"},
            {id: "2", name:"name2", genre:"genre2", composer:"composer2", year:"1953"}
            ]
    });

    var grid = new Grid({
            store: store,
            cacheClass: Cache,
            structure: [
                    { id: "column_1", field: "name", name: "Name", width: "50%" },
                    { id: "column_2", field: "genre", name: "Genre" },
                    { id: "column_3", field: "composer", name: "Composer" },
                    { id: "column_4", field: "year", name: "Year" }
            ],
            selectRowTriggerOnCell: true,
            modules: [
                    VirtualVScroller,
                    ColumnResizer,
                    SelectRow,
                    SingleSort,
            ]
    });
    grid.placeAt("gridContainer");
    grid.startup();
});
</script>

</head>
<body class="claro">
<div  id="gridContainer"></div>
</body>
</html>

Любая помощь будет принята с благодарностью!


person Jay Witherspoon    schedule 22.06.2015    source источник
comment
Есть идеи? Этот код кажется довольно хрупким, почти любое изменение, которое я делаю, не приводит к результату (я теряю заголовки из структуры).   -  person Jay Witherspoon    schedule 24.06.2015


Ответы (2)


Это то, что я получил работу ...

constructor : function(dataIn) {
  this.store = new ObjectStore({  // instance attribute
    objectStore : new Memory({
      data : dataIn
    })
  });
...rest of constructor...  

комбинация ObjectStore и Memory, казалось, работала.

person Jay Witherspoon    schedule 03.08.2015

Вы загрузили CSS-файл Gridx? Я скопировал ваш код в скрипте, и он работает: http://jsfiddle.net/5ynqhk2L/2/

Единственное, что я добавил, это Gridx.css.

  <link rel="stylesheet" type="text/css" href="http://oria.github.io/gridx/build/gridx/resources/claro/Gridx.css">
person gotcha    schedule 10.09.2015