Моя сетка При нажатии на ссылку не отображается - PullRequest
0 голосов
/ 17 марта 2011

У меня есть index.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" />
    <link rel="stylesheet" type="text/css" href="css/xtheme-gray.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>
    <script type="text/javascript" src="lib/jsfunction.js"></script>
    <script type="text/javascript" src="lib/reseller.js"></script>

</head>
<body>

    <div id="dashboard">
    </div>
</body>
</html>

Это мой dashboard.js. У меня есть функция рендеринга, по которой генерируется гиперссылка. по щелчку этой гиперссылки я хочу открыть другую сетку, которая находится в reseller.js. и функция onlclick находится в jsfunction.js.

/**
 * this file has the reseller dashboard grid 
 * 
 */
Ext.onReady(function(){

    /** 
    * function for rendering the link
    **/
    function linkRenderer(data, cell, record, rowIndex, columnIndex, store) {
        if  (data != null)  {
            return '<a href="javascript:void(0)" onclick="resellerwindow(\'' +record.data.cityname+'\')">'+ data +'</a>';

        }
        return data;
    }

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


    // create the Grid
    var grid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {
                id       :'cityname',
                header   : 'City Name', 
                width    : 120, 
                sortable : true, 
                dataIndex: 'cityname'
            },
            {
                id       :'countiro',
                header   : ' Total Prospect', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'countiro'
            },
             {
                id       :'irotransferred',
                header   : 'Calls Transfered By IRO', 
                height : 50,
                width    : 100, 
                sortable : true, 
                dataIndex: 'irotransferred'
            },
            {
                id       :'irodeferred',
                header   : ' Calls Deferred By IRO', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'irodeferred'
            },
            {
                id       :'totcallsentered',
                header   : ' Total Calls Entered', 
                width    : 100, 
                sortable : true, 
                dataIndex : 'totcallsentered',
                renderer : linkRenderer
            },
            {
                id       :'totfollowup',
                header   : ' Follow Up', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'totfollowup'
            },
            {
                id       :'totcallback',
                header   : ' Call Backs', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'totcallback'
            },
            {
                id       :'totnotintrested',
                header   : ' Not Interested', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'totnotintrested'
            },
            {
                id       :'totdealsclosed',
                header   : ' Deals Closed', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'totdealsclosed'
            },
             {
                id       :'totresellerregistered',
                header   : ' Reseller Registered', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'totresellerregistered'
            }
        ],
        height: 350,
        width: 1060,
        title: 'Reseller Dashboard',
        // config options for stateful behavior

    });

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

Вот мой jsfunction.js, это правильное место для размещения кода обработчика щелчков по ссылкам или я должен разместить его где-нибудь еще.

  /**
   * function for opening the window of reseller grid 
   *
   **/
    function resellerwindow(cityname) {
        alert(cityname);
        // render the grid to the specified div in the page
        resellergrid.render('dashboard');

    }

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

/**
 * this file has the reseller grid 
 * 
 */
Ext.onReady(function(){

    // create the data store
    var store = new Ext.data.JsonStore({
        // store configs
        autoDestroy: true,
        autoLoad :true,
        url: 'api/index.php?_command=getresellers',
        storeId: 'getresellerscount',
        // reader configs
        root: 'reseller',
        idProperty: 'firstname',
        fields: [
           {name: 'firstname'},
           {name: 'lastname'},
           {name: 'mobile'},
           {name: 'email'},
           {name: 'tmecode'},
           {name: 'tmename'},
           {name: 'updatedon'},
           {name: 'apptype'},
           {name: 'alloctype'},
           {name: 'empparent'},
           {name: 'irodeferred'}
        ]
    });


    // create the Grid
    var resellergrid = new Ext.grid.GridPanel({
        store: store,
        columns: [
            {
                id       :'firstname',
                header   : 'First Name', 
                width    : 120, 
                sortable : true, 
                dataIndex: 'firstname'
            },
            {
                id       :'lastname',
                header   : ' Last Name', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'lastname'
            },
             {
                id       :'mobile',
                header   : 'Mobile', 
                height : 50,
                width    : 100, 
                sortable : true, 
                dataIndex: 'mobile'
            },
            {
                id       :'email',
                header   : 'E-Mail', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'email'
            },
            {
                id       :'tmecode',
                header   : ' TME Code', 
                width    : 100, 
                sortable : true, 
                dataIndex : 'tmecode'
            },
            {
                id       :'updatedon',
                header   : ' updatedon', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'updatedon'
            },
            {
                id       :'empparent',
                header   : ' empparent', 
                width    : 100, 
                sortable : true, 
                dataIndex: 'empparent'
            }
        ],
        height: 350,
        width: 1060,
        title: 'Reseller Dashboard',
        // config options for stateful behavior

    });


});

Моя главная проблема заключается в том, почему не отображается сетка посредника. Я получаю эту ошибку, когда нажимаю на ссылку в сетке панели инструментов

resellergrid is not defined
[Break on this error] resellergrid.render('dashboard'); 

1 Ответ

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

У вас есть два метода onReady.Вашему приложению нужен только один метод onReady.

Ошибка заключается в том, что resellergrid не определен в рамках resellerwindow ().Вы объявили сетку посредника в reseller.js.Но не доступно для окна реселлера.

...