zqm3351533 2010-05-18 15:15
浏览 228
已采纳

this.el.dom为空或不是对象

刚开始学习ext不久,照着书上写的例子,就是在页面显示一个表格。

但是运行不起来,抛出了 “this.el.dom为空或不是对象” 的错误。自己已经在网上找过了,也试了很多方法还是不行。

不想在浪费时间,所以来这里寻求帮助,希望知道的朋友指点一二,感激不尽。下面是我全部的代码。

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>index.jsp</title>
        <link rel="stylesheet" type="text/css"
            href="ExtJS/resources/css/ext-all.css" />
        <script type="text/javascript" src="ExtJS/adapter/ext/ext-base.js"></script>
        <script type="text/javascript" src="ExtJS/ext-all.js"></script>
        <script type="text/javascript">
       
            var cm = new Ext.grid.ColumnModel([
                {header: '编号', dataIndex: 'id'},
                {header: '名称', dataIndex: 'name'},
                {header: '描述', dataIndex: 'descn'}
            ]);
            var data = [
                ['1', 'name1', 'descn1'],
                ['2', 'name2', 'descn2'],
                ['3', 'name3', 'descn3'],
                ['4', 'name4', 'descn4'],
                ['5', 'name5', 'descn5']
            ];
            var ds = new Ext.data.Store({
                proxy: new Ext.data.MemoryProxy(data),
                reader: new Ext.data.ArrayReader({}, [
                    {name: 'id'},
                    {name: 'name'},
                    {name: 'descn'}
                ])
            });
            ds.load();
           
            var grid = new Ext.grid.GridPanel({
                el: 'grid',
                ds: ds,
                cm: cm
            });
            grid.render();
   
        </script>
    </head>
    <body>
        <div id="grid"></div>
    </body>
</html>

 

补充一点,我用的ExtJS是2.3版本的,难道是版本的问题导致的吗?

  • 写回答

1条回答 默认 最新

  • myali88 2010-05-18 15:50
    关注

    JS运行时,DOM节点尚不可用。你可以把JS放到后面,如下:
    [code="javascript"]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


    index.jsp


    </head>
    <body>
        <div id="grid"></div>
        <script type="text/javascript">
            var cm = new Ext.grid.ColumnModel([
                {header: '编号', dataIndex: 'id'},
                {header: '名称', dataIndex: 'name'},
                {header: '描述', dataIndex: 'descn'}
            ]);
            var data = [
                ['1', 'name1', 'descn1'],
                ['2', 'name2', 'descn2'],
                ['3', 'name3', 'descn3'],
                ['4', 'name4', 'descn4'],
                ['5', 'name5', 'descn5']
            ];
            var ds = new Ext.data.Store({
                proxy: new Ext.data.MemoryProxy(data),
                reader: new Ext.data.ArrayReader({}, [
                    {name: 'id'},
                    {name: 'name'},
                    {name: 'descn'}
                ])
            });
            ds.load();
    
            var grid = new Ext.grid.GridPanel({
                el: 'grid',
                ds: ds,
                cm: cm
            });
            grid.render();
        </script>
    </body>
    


    [/code]
    这里我简单的都放到后面去了,只有把关键一句[code="javascript"]grid.render();[/code]放到后面即可,后面这个也一样。
    或者把你的JS放到Ext.ready里面
    [code="javascript"]
    Ext.ready(function(){
    var cm = new Ext.grid.ColumnModel([
    {header: '编号', dataIndex: 'id'},
    {header: '名称', dataIndex: 'name'},
    {header: '描述', dataIndex: 'descn'}
    ]);
    var data = [
    ['1', 'name1', 'descn1'],
    ['2', 'name2', 'descn2'],
    ['3', 'name3', 'descn3'],
    ['4', 'name4', 'descn4'],
    ['5', 'name5', 'descn5']
    ];
    var ds = new Ext.data.Store({
    proxy: new Ext.data.MemoryProxy(data),
    reader: new Ext.data.ArrayReader({}, [
    {name: 'id'},
    {name: 'name'},
    {name: 'descn'}
    ])
    });
    ds.load();

            var grid = new Ext.grid.GridPanel({
                el: 'grid',
                ds: ds,
                cm: cm
            });
            grid.render();
    

    });
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 Revit2020下载问题
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大
  • ¥15 单片机无法进入HAL_TIM_PWM_PulseFinishedCallback回调函数
  • ¥15 Oracle中如何从clob类型截取特定字符串后面的字符
  • ¥15 想通过pywinauto自动电机应用程序按钮,但是找不到应用程序按钮信息
  • ¥15 如何在炒股软件中,爬到我想看的日k线
  • ¥15 seatunnel 怎么配置Elasticsearch