Красный флаг ExtJS: могу ли я обойти это, и если да, то как? - PullRequest
0 голосов
/ 05 апреля 2011

В предыдущем вопросе, Почему моя таблица данных ExtJS заполнена как пустая? , я сделал то, что предполагалось сделать реализацией "с первой попытки", на основе ExtJS в действии Хесуса Гарсии (пять звезд на Амазоне).Когда это не сработало, я начал воплощать пример, которому пытался следовать (с. 159-161).Я исправил ошибку, когда в nameRecord столбец называется «name», а в colModel - «fullName», но в противном случае эта страница реализует код примера, идентично закрывающий пробелы:

<!DOCTYPE html> 
<html> 
    <head> 
        <link rel="stylesheet" href="/extjs/resources/css/ext-all.css" /> 
        <script type="text/javascript"
          src="/extjs/adapter/ext/ext-base-debug.js"> 
        </script> 
        <script type="text/javascript" src="/extjs/ext-all-debug.js"></script> 
    </head> 
    <body> 
        <script type="text/javascript"> 

            var arrayData = [
              ['Jay Garcia', 'MD'],
              ['Aaron Baker', 'VA'],
              ['Susan Smith', 'DC'],
              ['Mary Stein', 'DE'],
              ['Bryan Shanley', 'NJ'],
              ['Nyri Selgado', 'CA']
              ];

            var nameRecord = Ext.data.Record.create([
              {name: 'fullName', mapping: 1},
              {name: 'state', mapping: 2}
              ]);

            var arrayReader = new Ext.data.ArrayReader({}, nameRecord);

            var memoryProxy = new Ext.data.MemoryProxy(arrayData);

            var store = new Ext.data.Store({
              reader: arrayReader,
              proxy: memoryProxy
              });

            var colModel = new Ext.grid.ColumnModel([
                  {
                  header: 'Full Name',
                  sortable: true,
                  dataIndex: 'fullName'
                  },
                  {
                  header: 'State',
                  dataIndex: 'state'
                  }
              ]);

            var gridView = new Ext.grid.GridView();

            var selModel = new Ext.grid.RowSelectionModel({
              singleSelect: true
              });

            var grid = new Ext.grid.GridPanel({
              title: 'Our first grid',
              renderTo: Ext.getBody(),
              autoHeight: true,
              width: 250,
              store: store,
              view: gridView,
              colModel: colModel,
              selModel: selModel
              });

            </script> 
    </body> 
</html>

И это не удается вКак и мой предыдущий вопрос ( Почему моя таблица данных ExtJS заполнена как пустая? ): она отображает заголовки, но не содержит строки данных.

Итак, у меня есть два вопроса:

Во-первых, что я могу извлечь из этого?Это именно то, что происходит, когда вы пытаетесь следовать этому конкретному заголовку о том, как использовать ExtJS?Есть ли другая книга, из которой я должен работать вместо этого?

Во-вторых, , где (если где-нибудь) я могу найти простые, работающие демонстрации сетки данных ExtJS, с которыми я могу работать, а затем начать адаптироваться кмои цели?

1 Ответ

0 голосов
/ 05 апреля 2011

Измените создание вашей записи на

var nameRecord = Ext.data.Record.create([
    {name: 'fullName', mapping: 0},
    {name: 'state', mapping: 1}
]);

и создание вашего магазина на

var store = new Ext.data.Store({
    reader: arrayReader,
    proxy: memoryProxy,
    autoLoad: true
});

По второму вопросу: попробуйте страницу примеров на sencha.com ,

...