我的网格点击链接没有显示

时间:2011-03-17 12:13:00

标签: javascript function extjs grid

我有这个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在这里我有一个rendere函数,在其上生成超链接 点击这个超链接,我想打开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 :(得分:0)

你有两个onReady方法。您的应用程序只需要一个onReady方法。

错误是因为resellergrid未在resellerwindow()的范围内定义。您已在reseller.js中声明了resellergrid。但是经销商窗口无法访问。