почему мои данные из json не отображаются в сетке - PullRequest
0 голосов
/ 17 марта 2011

вот мой js-файл dashboard.js

Ext.onReady(function(){
    Ext.QuickTips.init(); // **want to know why this is used** 

    // NOTE: This is an example showing simple state management. During development,
    // it is generally best to disable state management as dynamically-generated ids
    // can change across page loads, leading to unpredictable results.  The developer
    // should ensure that stable state ids are set for stateful components in real apps.    
    Ext.state.Manager.setProvider(new Ext.state.CookieProvider());**want to know why this is used** 


    // create the data store
    var store = new Ext.data.JsonStore({
        // store configs
        autoDestroy: true,
        autoLoad :true,
        url: 'api/index.php?_command=getresellers',
        storeId: 'getresellers',
        // reader configs
        root: 'cityarray',
        idProperty: 'cityname',
        fields: ['cityname', 'totfollowup', 'totcallback', 'totnotintrested', 'totdealsclosed', 'totcallsreceived', 'totcallsentered', 'totresellerregistered', 
            'countiro', 'irotransferred',  'irodeferred'
        ]
    });


    // create the Grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {
                id       :'cityname',
                header   : 'cityname', 
                width    : 160, 
                sortable : true, 
                dataIndex: 'cityname'
            }
        ],
        stripeRows: true,
        autoExpandColumn: 'cityname',
        height: 350,
        width: 600,
        title: 'Reseller Dashboard',
        // config options for stateful behavior
        stateful: true,
        stateId: 'grid'
    });

    // render the grid to the specified div in the page
    grid.render('dashboard');
});

Я положил несколько комментариев, где я хочу знать, почему это используется .. хочу знать, почему это используется Вотмой HTML-файл

<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Reseller DashBoard</title>

    <!-- ** CSS ** -->
    <!-- base library -->
    <link rel="stylesheet" type="text/css" href="css/ext-all.css" />

    <!-- overrides to base library -->

    <!-- ** Javascript ** -->
    <!-- ExtJS library: base/adapter -->
    <script type="text/javascript" src="lib/ext-base-debug.js"></script>

    <!-- ExtJS library: all widgets -->
    <script type="text/javascript" src="lib/ext-all-debug.js"></script>

    <!-- overrides to base library -->

    <!-- page specific -->
    <script type="text/javascript" src="lib/dashboard.js"></script>

</head>
<body>

    <div id="dashboard">



    </div>
</body>
</html>

Вот мой JSON, который я также рендеринг в Firebug ..

{
    "countothercities": "0",
    "directreseller": "14",
    "totalresellersregisteredfor8cities": 33,
    "cityarray": [{
        "cityname": "bangalore",
        "totfollowup": "3",
        "totcallback": "4",
        "totnotintrested": "2",
        "totdealsclosed": "0",
        "totcallsreceived": "0",
        "totcallsentered": "68",
        "totresellerregistered": "6",
        "countiro": "109",
        "irotransferred": "83",
        "irodeferred": "26"
    }, {

Пожалуйста, проверьте.

Ответы [ 3 ]

0 голосов
/ 17 марта 2011

Попробуйте:

//grid.render('dashboard'); //delete this line
grid.renderTo = 'dashboard';
grid.show();

Обновление

попробуйте удалить эту строку

 autoExpandColumn: 'company'
0 голосов
/ 17 марта 2011

Вот ваша ошибка:

autoExpandColumn: 'company',

Нет столбца с этим идентификатором.

0 голосов
/ 17 марта 2011

Функциональность Ext.QuickTips обеспечивает привлекательные и настраиваемые всплывающие подсказки для любого элемента.Посмотрите этот учебник с учебного сайта Sencha для подробностей.Метод init вызывается для инициализации одноэлементного класса Ext.QuickTip.

Ext.state.Manager - это глобальный менеджер состояний.Чтобы использовать менеджер состояния, вы должны инициализировать его с поставщиком.Вот что вы делаете с заявлением:

Ext.state.Manager.setProvider(new Ext.state.CookieProvider());

Здесь вы используете CookieProvider.Используя это, вы просите библиотеку ExtJS сохранить информацию о состоянии компонентов в файлах cookie.

Обновление : ошибка возникает в методе getColumnWidth ().проверьте правильность значений атрибута width в вашей модели столбца.Для отладки попробуйте удалить детали ширины для всех столбцов.Я думаю, что у вас есть больше кода, который вы не поместили здесь для упрощения.Возможна опечатка.

...