Ext笔记一

1、 component组件查询xtype的种类
2、 textfield要放置在Ext 的container中,或container的子类中,例如Ext.panel,并且layout设置为form中,则textfeild能够正常显示。
3、 一个组件宿主在哪一个html的dom节点上;组件放在容器组件上的布局。
4、 Window组件要用show方法才能显现,而panel则不用
5、 Plain属性设为true后,就使画面风格一致。
6、 Resize默认情况使true,即允许客户通过拖拉方式将form变形。设为false则固定
7、 Bodystyle用来设置内容与边框的距离。
8、 一个组件的事件就使可以放在listener里的监听事件。
9、 Window的closeaction默认是执行close事件以及hide属性。
10、 关于编码,浏览器的编码与页面的编码方式一致即可。
11、 Handler的函数里用到的this指的是公布这个handler的组件。
12、 This.ownCt来访问组件的容器组件,this指组件
13、 Window中的items属性如果不添加任何东西,只是【{}】,则就为一个panel组件,该panel组件初始为一个白条,basdCls:“x-plain”则是去掉这个白条。正常显示
14、 Anchor是使组件随着边框拉升而变化。
15、 Bodystyle是基于面板组件的,还有一个style
16、 Padding填充是上右下左的顺序。
17、 baseCls : "x-plain",是去掉背景的白色
18、handler:function(){
var job = this.ownerCt.ownerCt.ownerCt.findByType("combo")[1];
Ext.MessageBox.prompt("请输入职位名称","职位名称",function(btn,text){
if(btn=='ok'){

}
},job);//function后面这个参数是应当放scope的,我们这里放了job,则函数里边所有的this所指的对象都是指job。
}
18、 gridpanel(1)插入:由表单向服务器提交,提交完了,以后从gridpanel重载数据,这种方法耗资源,不用了(2)插入,由单向服务器提交,提交完了,在gridpanel的store直接插入一条数据。3)处理分页插入:由表单向服务器提交,提交完了,在gridpanel的store第一行插入一条数据,将最后一行删掉
19、 json从服务器下载下来一定是文本
20、 没有制定方法的的时候,向服务器提交的是post方法
21、 Form必有url
22、 Vtpe是用来验证输入框是否符合要求的输入,如邮箱,电话等
23、 Store:数据存储器,保存与管理数据 ,他是通过reader解析proxy提供的数据。 所以store包括reader和proxy,但是store本身是数据存储器,如果不用远程数据就不用reader和proxy。Store的数据是以record类型的数据进行存储的,相当于一个记录集
24、 Reader:数据读取器,用在从服务器将数据下载下来后解析的 proxy:数据代理,代理各种数据源
25、 流行的中间数据结构:XML、json(XML的减肥方案)
26、 Arrayreader是jsonreader的一个子类,使用不同的reader时注意data的格式
27、 用Jsonstore简化了reader的写法,而如果用store,则必须写明确reader
28、 Store如果用的是本地数据,则包括data属性,如果是远程数据,则用proxy,这个proxy可以简化为直接写url
29、 一旦有数据代理,即proxy,则必须对store进行load,可以在load的监听里放置要操作的函数。
30、 Gridpanel:1、有一个外框架2、有列定义3、选中机制4、数据源
31、 Window有一个plain属性,用于设置背景,如果为true,则设置为背景色为透明,这样可以和里边的formpanel很好的融合在一起
32、 个人对事件的理解:以grid中的form(放在window中)为例,我认为有三种情况:第一种:自己的触发造成自己的改变,这种情况简单,可以在自己的触发句柄里操作自己的东西;第二种,自己的触发造成别的组件的改变,例如form表单的提交动作会造成gridpanel里增加一条记录,这种情况不同与第一种,困难指出在于:难以拿到要改变组件的句柄,即form点击了submit按钮后如何能够使得gridpanel进行变化,这超出了组件自身,这种情况下,就使用事件机制,将form表单注册一个submit事件,并将此事件与参数一并抛出,等待在grid的环境下进行事件绑定,从而实现对grid的调用。这种方法有好处:(1)解决了组件之间的交互;(2)往往子组件先定义,而且子组件的触发要导致父组件的改变,而此时父组件还没有建出来,这中情况下,就可以用事件机制,先使得子组件把事件抛出来,然后等父组件去接受(3)对于两个没有父子组件的关系,这中方法也是可以的,因为另一组件在绑定前一组件抛出的事件时,可以将在scope写成自己的,这样就可以利用前一组件传过来的参数做自己的事情(4)对于父组件要调用子组件,这比较简单,因为父组件可以直接拿到子组件的句柄,所以无需绑定。(5)对于要接收父组件的数据的子组件方法直接写在子组件段就可以,写上形参,等到父组件构造出来后调用子组件的方法,而父组件可以把自己的实参传给该方法。
33、 在为一个组件写函数时,该函数的参数没有,因为是自己操作自己的东西,在写函数时就可以在函数体内自己调用,在写函数时如果需要形参,那是在要绑定别的组件抛出来的事件时才需要接收参数。
34、 Form表单里的某一字段的name属性可以写作struts2 action里bean的属性一一对应
35、 目前知道的动态加载tree的方法有两种:一种是宋师兄的系统的写法,该写法是每次加载一个节点时将该节点的id传到后台去读取其子节点信息,所以用到了beforeload方法,在beforeload中改变url的参数
36、 动态加载树要用几个包jakarta commons-lang 2.4
jakarta commons-beanutils 1.7.0 jakarta commons-collections 3.2 jakarta commons-logging 1.1.1
ezmorph 1.0.6
37、 为了保证不乱码,要保证浏览器,数据库,servlet,jsp,html的字符集是一致的
38、 布局中,west是不用设置高度的,center属于剩下的,也不用设置
39、 Panel面板有个属性tools:
tools : Array
工具按钮注册数组,它将被添加到顶部工具区域。 当渲染完成后...
工具按钮注册数组,它将被添加到顶部工具区域。 当渲染完成后, 每个工具按钮都被作为一个Element类型的引用, 被存储到一个叫做tools.<tool-type>的公共属性中。
每个tool的配置属性都可以包含如下属性:
• id : String
必须。 创建工具按钮的类型。值可以是
o toggle (当collapsible 为 true时自动创建)
o close
o minimize
o maximize
o restore
o gear
o pin
o unpin
o right
o left
o up
o down
o refresh
o minus
o plus
o help
o search
o save
o print
• handler : Function
必须。 点击时调用的方法。传递的参数为:
o event : Ext.EventObject
点击事件
o toolEl : Ext.Element
tool元素
o Panel : Ext.Panel
宿主Panel
• scope : Object
调用处理器的作用域。
• qtip : String/Object
A tip string, or a config argument to Ext.QuickTip.register
• hidden : Boolean
如果为true,初始化时渲染成隐藏的。
• on : Object
一个监听器注册对象,指定事件监听器,按照addListener指定的参数格式。
示例用法:
tools:[{
id:'refresh',
qtip: 'Refresh form Data',
// hidden:true,
handler: function(event, toolEl, panel){
// refresh logic
}
}]
注意,除了toggle工具提供了panel的收缩/展开功能之外,这些工具按钮只有视觉效果。(译者注:指除了收缩/张开按钮提供了默认的功能实现外,其它的按钮都没有提供默认的实现。)任何需要的功能都必须通过添加处理器来实现必要的功能。
40、 store的baseparams是存放参数的,用于传递到服务器端
41、 将重拥度高的各个组件设计成全局变量的,名字不同,这样可以全局调用多次,另外,要注意使用ownerct来获得其他组件;一个combox的select事件可能导致另一个组件store数据,所以要在select事件中更改另一最贱store数据请求的参数
42、 Sturts2的配置中,如果返回的是json,如果action里有要返回的属性,则在result里的param中写明确,如:
<action name="saveUser" class="userAction" method="saveUser">
<result type="json">
<param name="includeProperties">success,userId
</param>
</result> </action>
上面的例子中,type指明了返回的是json,param的name是includeproperties表明该属性在action里边有,要返回的属性是success和userid
再例如下面的例子:
<action name="findAllUser" class="userAction" method="findAllUser">
<result type="json">
<param name="root">page</param>
<param name="excludeProperties">conditions,limit,start,success,objCondition</param>
</result>
</action>
这个例子中,root表明,要返回的属性值不在action里直接定义,而是在action里的page属性中,如果不写明root,则表明返回的是action里的属性,如上例中。第二个参数,excludeproperties表明了page对象里并不是要返回所有的属性,而是要返回除去第二个参数里列出的属性之外的属性。所以 我个人认为,
43、 form提交的submit方法的success接收参数包括form本身和action,该action是Ext.form.Action,通过其属性result来访问返回的数据,例如,action.result.id,就表示引用了返回的id
44、 当传到后台的属性无法与action属性一一对应时,就需要用到getrequest()方法来获得了
45、 一个系统中只有一个Ext.onready()方法,这个是开始
46、 Ext.get()这个方法不能用来捕获Ext.Component对象,这个方法用来捕获Ext.Element对象,它包装了原始的DOM元素。 如果需要通过一个Component的id获得Component对象,请使用Ext.ComponentMgr.get()方法,也就是Ext.getCmp()方法。
另外,Ext.fly()和Ext.get()都可以获取Element对象,但是它们的实现细节是不同的, 尤其对内存的消耗上有很多区别。Ext.fly()使用了所谓的“享元模式”让获得的对象共享一些属性以达到 节省内存的目的。而Ext.get()会每次都创建一个完整的Element对象,由于Element对象是对 底层DOM的封装,它提供了大量的属性和方法。显然,每次都创建是需要消耗很多内存的。如果获得对象的 引用仅仅是为了对对象执行一次操作,而不需要保存这个对象的引用,建议使用fly方法而不是get方法。
47、 Button下有menu属性,用于创建下拉menu
48、setActiveItem( String/Number item ) : void
设置布局中的当前活动(可见)项。
设置布局中的当前活动(可见)项。
参数:
• item : String/Number
需要成为当前活动项的组件的id或序号
这个是layout的方法,这里layout是具体的某个layout,如card等,可以在一个面板中放很多items,然后利用这个方法来激活不同的item
49、 <action name="findAllBook" class="bookAction" method="findAllBook">
<result type="json">
<param name="root">page</param>
<param name="excludeProperties">conditions,limit,start,success,objCondition</param>
</result>
</action>
上边配置中,root表明要序列化的对象是page(page是action里的一个属性对象),返回的属性包括除去exclueproperties里的剩余的属性,包括了root(不同于第一个root)和'totalProperty',在前端js里,store调用的是root,totalproperty调用的是属性totalproperties。故形式为{totalProperty : 'totalProperty',root : 'root'},
50、treeloader加载数据时,如果返回的很多,则在load事件里清除当前节点的所有子节点,从response参数中获取返回的json字符串,转为对象,操作对象中的tl数组,循环定义节点并附加到当前节点作为子节点。

如果后台直接返回tl对应的json数据就不用这么麻烦了,自动就会增加子节点的。
51、
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值