ext js 4.0的问题

问题描述

我在firefox上调试 EXT JS4.0的程序的时候其他的组建如BUTTON ,textfield都能正常显示。。。但是WINDOW就不能。。。查看firefox的控制台。。发现报错一个 this.container is null 的信息。。。。我查找了半天也没找到原因。。请大瞎指点。代码如下Ext.onReady(function(){ var button = new Ext.button.Button({text:"one",width:100,renderTo:Ext.getBody(),listeners:{"click":function(){alert(this.getText());}}}); var _window = new Ext.Window({ layout: { type: 'vbox', align: 'left'}, width:200, height:100, resizable:false, frame:true, border:4, plain:true, title:"测试", items:[ {xtype:"textfield",fieldLabel:"姓名"}, {xtype:"textfield",fieldLabel:"明码"} ], buttons:[ { text:"打开", listeners:{ "click":function(){ alert("打开了"); _window.show(); } } }, { text:"关闭", listeners:{ "click":function(){ alert("关闭了"); _window.hide(); } } } ] }); _window.render(Ext.getBody()); _window.show();//4.0的SHOW方法有三个参数,但是都是可选的,因此我没有穿进去 }); 问题补充:myali88 写道

解决方案

不是结贴么,怎么没动静?我等着呢
解决方案二:
其实你要获取对window组件的引用也很简单,有两个办法:1、因为上面的写法产生了闭包,所以你在listener的方法里面是可以直接访问window的,想这样://...listeners:{"click":function(){alert("打开了");console.log(_window.title);_window.show();}}/...2、采用继承的方式,定制你自己的window。把buttons的赋值放到initCompont里面,这样你就能在函数里获得window的引用(因为initComponent函数的this就是指向window本身),在通过listener的scope属性指定作用域,其实不指定也可以,因为有闭包。最后,建议你既然你使用Extjs 4,那么代码的写法最好按extjs 4的方式来,你上面的写法都是extjs 3的。我使用extjs也才2个月,没什么好资料,都是看看API,看看官方的例子,然后自己改。
解决方案三:
什么是组件!就是搭积木一样,一个附在另一个上面,window内部也会使用其他组件的啊,不是说你给window设置了“button”属性,那么这些button就直接添加到window上来了,具体要看window组件本身是怎么实现的,Extjs文档里面也说得很清楚了。就是把button先添加到toolbar组件上,然后再把toolbar组件添加到了window上,所以可以像你说的引用还是说就间接的证明了我的BUTTON根本就没有附着在window上面。。。。?(这个概率不高吧) 但不是不在,只是不是直接在window上而已。引用这个概率不高吧这是什么意思?我不明白!没什么概率问题,Extjs里面Window组件的实现就是这样的,buttons属性中的button都是添加到toolbar上的。
解决方案四:
我说的子容器不是子类!虽然你new的是Window,但是你是把你的按钮添加到了“buttons”属性里面,而不是window本身。引用bbar : Object/ArrayThe bottom toolbar of the panel. This can be a Ext.Toolbar object, a toolbar config, or an array of buttons/button configs to be added to the toolbar.看看Extjs文档的说明,buttons里的组件被添加到了toolbar组件里面,这里的toolbar作为Window的bbar属性存在的!其实你要知道“this.ownerCt”到底是谁,知道通过:console.log(this.ownerCt)就能看得出来。
解决方案五:
引用但是没有显示当前panel的title 显示的是undefined 。。。能不能告诉我下这是因为,buton的父容器并不是window,而是window的子容器:tbar,tbar本身没有定义这个title属性引用且我发现个问题。。一些属性或者配置或者方法文档里面没有。。但是可以用。。。。这个就有点费力了。。。是不是官方文档没写全啊。还是说是故意的有什么用意?? 你使用的属性和方法最好是文档里有的,这些属性对我们来说属性API,extjs不会轻易改变的,而其他属性虽然你可以使用,但属于extjs内部的接口,不能保证将来它不会改变。因为js并没有像java这样的语法级别的访问控制,所以你能访问到这些内部的属性和方法。
解决方案六:
你用有问题的机子,访问一个官网上的windows的例子,看看有没有同样的问题,如果没有,那说明还是代码的问题。
解决方案七:
我试过了,没问题啊!你用这个试试:Ext.require([ '*' ]);Ext.onReady(function(){var button = new Ext.button.Button({text:"one",width:100,renderTo:Ext.getBody(),listeners:{"click":function(){alert(this.getText());}}}); var _window = new Ext.Window({layout: {type: 'vbox',align: 'left'},width:200,height:100,resizable:false,frame:true,border:4,plain:true,title:"测试",items:[{xtype:"textfield",fieldLabel:"姓名"},{xtype:"textfield",fieldLabel:"明码"}],buttons:[ { text:"打开", listeners:{ "click":function(){alert("打开了");_window.show(); } } }, {text:"关闭",listeners:{"click":function(){alert("关闭了");_window.hide();}} } ] }); _window.render(Ext.getBody()); _window.show();//4.0的SHOW方法有三个参数,但是都是可选的,因此我没有穿进去 });

时间: 2024-09-17 09:44:25

ext js 4.0的问题的相关文章

Ext JS 4.0发布 一个与后台技术无关的前端ajax框架

ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架.&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;功能丰富,无人能出其右.无论是界面之美,还是功能之强,ext的表格控件都高居榜首. 单选行,多选行,高亮显示选中的行,推拽改变列宽度,按列排序,这些基本功能咱们就不提了. 自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染

《Ext JS实战》——1.4 Ext JS 3.0的新特性

1.4 Ext JS 3.0的新特性 Ext JS 2.0中引入的一些变化是颠覆性的,这就导致从级到2.0相当困难.这主要是因为这一版引入了一个更加现代的布局管理器以及一个崭新的.健壮的组件层次,许多Ext JS 1.x的代码都会因此而崩溃.值得庆幸的是,由于Ext JS 2.0的良好的工艺设计,从Ext JS 2.0到3.0的移植就非常容易了.尽管Ext JS 3.0新增的内容并不怎么神奇,不过最新的版本还是可圈可点的,有些新增的特性还是值得讨论的. 1.4.1 Ext JS通过Direct完

Ext JS v4.0.1发布 用于创建前端用户界面

ExtJS是一种主要用于创建前端用户界面,是一个与后台技术无关的前端ajax框架.功能丰富,无人能出其右.无论是界面之美,还是功能之强,ext的表格控件都高居榜首.单选行,多选行,高亮显示选中的行,推拽改变列宽度,按列排序,这些基本功能咱们就不提了. 自动生成行号,支持checkbox全选,动态选择显示哪些列,支持本地以及远程分页,可以对单元格按照自己的想法进行渲染,这些也算可以想到的功能.再加上可编辑grid,添加新行,删除一或多行,提示多行数据,推拽改变grid大小,grid之间拖拽一或多行

ext js 4.0 grid表格根据列值的不同给行设置不同的背景颜色

Code: Ext.create('Ext.grid.Panel', { ... viewConfig: { getRowClass: function(record) { return record.get('age') < 18 ? 'child-row' : 'adult-row'; } } }); Code css样式: .child-row .x-grid-cell { background-color: #ffe2e2; color: #900; } .adult-row .x-gr

《Ext JS实战》——1.3 框架概览

1.3 框架概览 Ext JS作为一个框架,不仅提供了UI部件,还提供了许多其他特性.这些内容可以分成6大部分,即Ext JS核心.UI组件.Web远程调用.数据服务.拖放以及通用工具.图1-4说明了这6个部分. 图1-4 Ext JS的6大部分,即Ext JS核心.UI组件.Web远程调用.数据服务.拖放及通用工具 了解这6大部分之间的区别以及各自的用途,有助于开发应用程序时划分边界,因此下面先讨论这6个部分. Ext JS核心 第一个功能集就是Ext JS核心,这一部分包括了许多基本功能,包

《Ext JS 4 First Look》翻译之五:Grid、Tree和Form   

5.1. Grid panel      Grid应该是我们在开发时使用的最多的组件之一.Extjs4对其进行了重大的改进.      Extjs4与Extjs3的Grid生成不同的HTML.Sencha称其为智能渲染(Intelligent Rendering).Extjs3中即使不需要Grid的所有特性,它也会生成整套HTML.而Extjs4就只会渲染Grid所用到的特性,这样就使 渲染最小化且提高了性能.      在学习Extjs4中Grid的新特性前,让我们先了解在Extjs4中如何创

《Ext JS 4 First Look》翻译之五:Grid、Tree和Form

<Ext JS 4 First Look>翻译之五:Grid.Tree和Form      至此我们已经学习了Data包和布局等API.下面我们来学习作为Extjs框架中我们用得最多的用来展现数据的Grid.Tree和Form吧! 目录: 5.1. Grid panel 5.1.1. Columns 5.1.2. Feature 5.1.2.1. Ext.grid.feature.Grouping 5.1.2.2. Ext.grid.feature.Summary 5.1.2.3. Ext.g

《Ext JS实战》——1.7 小结

1.7 小结 通过这部分对于Ext JS的介绍,已经知道了如何用它构建健壮的Web应用程序,或者和现有的Web站点集成.也知道如何和市面上的其他流行框架相权衡,也知道它是唯一基于UI的框架,包含类似Component.Container.Layout以UI为中心的支持类.记住Ext JS可以放在jQuery.Prototype和YUI的上面. 本章对框架所提供的一些核心UI组件进行了一些探讨,并展示了这些内置的部件为快速应用开发带来效果.此外,还谈到了Ext JS 3.0引入的一些变化,例如Fl

《Ext JS实战》——导读

**前言**Ext(读作Eee-ecks-tee)JS 3.0是一个功能强大的UI框架,可以构造丰富.健壮的跨浏览器应用,它最初是由Jack Slocum在2006年开发出来的.从那时起,Ext JS就经历了一个爆炸性的增长,因为它满足了Web开发人员对于一个真正的.有完整的组件和事件模型的UI框架的需要.这也使得它在竞争激烈的Web 2.0库领域独树一帜. 本书会带你对框架进行深度探索,会通过大大小小的例子演示Ext JS的高效使用方法.而且本书还使用了许多手绘的插图帮你加快学习的速度. Ex