当主页面中引用了扩展控件里的JS脚本,由于引用JS文件较大,加载慢。
导致在主JS 里创建对象时 找不到该类型而报错,
不知道说清楚了么?在线等!!
目前是把外部JS 放在主JS之前,但还是会有该错误。

解决方案 »

  1.   

    说实话楼主解释的不是特别清楚。我想你遇到的问题应该是由于你的扩展控件是异步加载引起的吧?解决方法有两种1是把异步加载方法换成同步加载。如果不明白在网上查下同步异步2或者把你住程序的代码放到你的扩展控件的某种事件(event)或listener里,这样先执行扩展控件的事件再执行主程序
      

  2.   

    比如说我定义了这个:var group = new Ext.ux.grid.ColumnHeaderGroup({
    rows: [row]
    }); 经常会出现Ext.ux.grid is undefined这个错误
    看火狐里的加载时间,扩展时间大于 主JS加载时间。
      

  3.   

    正常情况下,你自定义的外部控件,放在主js类库前面加载,是没有问题的,不会因加载不全面出错。
    如果有问题,基本上可以判定你自写的控件“有质量问题”
    你要写完后,要注册为类,至于怎么注册之类的,可以参考示例里边ux下的那些插件的做法。
      

  4.   

    原来是ColumnHeaderGroup呀,按道理直接在你的网页引用就能用了,不知道楼主是怎么加载它的呀?是否有写 plugins: [group] 
      

  5.   

    帖你加载js的html看看。我用了Ext.ux中的控件,也自己扩展了一些控件,就算用移动的3G信号也不会出错。
      

  6.   

    以下是主页界面@{
        Layout = null;
    }<!DOCTYPE html><html>
    <head>    <title></title>
        <link  type="text/css" href="@Url.Content("~/Content/resources/css/ext-all.css")" rel="stylesheet" />
        <link type="text/css" rel="stylesheet" href="@Url.Content("~/Content/css/commstyle.css")" />
        <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Main.css")" />
    </head>
    <body>
        <div>
        </div>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ext-base.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ext-all.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/TabCloseMenu.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/PanelResizer.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/PageComboResizer.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ext-lang-zh_CN.js")"></script>
      
    </body>
    </html>
    以下是功能页面@{
        Layout = null;
    }<!DOCTYPE html>
    <html>
    <head>
        <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/resources/data-view.css")" />
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/RowExpander.js")"></script>
    </head>
    <body>
        <div id="DivTask">
        </div>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/DataView-more.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/ExtJS/ux/CheckColumn.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/Task/TaskWindow.js")"></script>
        <script type="text/javascript" src="@Url.Content("~/Scripts/Task/TaskList.js")"></script></body>
    </html>
    在功能页面中经常会发生找不到 RowExpander 中的定义
      

  7.   

    试一下头文件ext-all.js换成ext-all-debug.js问题也有可能出在你的主程序代码里,建议你跟踪下在主程序定义RowExpander时是不是成功了
      

  8.   

    还有就是你有没有用Ext.require,如果动态加载class时它应该用到另外就是Ext.Loader.setPath('Ext.ux', '../ux'); 帮你的程序找到路径
    Ext.Loader.setConfig({
        enabled: true
    });
    Ext.Loader.setPath('Ext.ux', '../ux'); //注意你的ux的路径Ext.require([
        'Ext.grid.*',
        'Ext.data.*',
        'Ext.ux.RowExpander', 
        'Ext.selection.CheckboxModel'
    ]);