最好分好类
//3个基本js引入顺序,不可错。
<link rel="stylesheet" type="text/css"
href="<%=basePath%>/context/resources/ext3.3/css/ext-all.css" />
<script type="text/javascript"
src="<%=basePath%>/context/resources/ext3.3/adapter/ext/ext-base.js"></script>
<script type="text/javascript"
src="<%=basePath%>/context/resources/ext3.3/adapter/ext/ext-all.js"></script>
<script type="text/javascript"
src="<%=basePath%>/context/resources/ext3.3/adapter/ext/ext-lang-zh_CN.js"></script>
//图片显示不正常
Ext.BLANK_IMAGE_URL = 'context/resources/ext3.3/images/default/s.gif';这个图片在js中要引入.
//EXT.getCmp('id')返回的是一个Ext控件,ext获得html标签ext.get(‘id’).dom.value
Ext.get方法是获取一个元素,你可以通过他来修改控件的属性
Ext.getCmp方法是获得一个Ext控件,你可以通过他来调用控件的方法
1.modal:true这个放在Ext.window里作用是让window成为一个模式窗口,这样当这个窗口弹出后,他的父窗口不可用.
2.当一个Ext.window的closeAction有两种选择close/hide(完全关闭/隐藏)close就是把此window destroy。
hide是把此window隐藏,这样做的复用性比较强,注:如果要重新渲染这个window的html,需要window.body.update(‘html’)。
3.请教,如何单击grid上某行,让它前面的checkbox不跟着选中
sm = new Ext.grid.CheckboxSelectionModel({handleMouseDown:Ext.emptyFn});
3.1 grid相当于table
必须属性store(页面记录集),cm(tr行),sm(td列)
4.Ext.form的错误提示:
Ext.QuickTips.init();
Ext.form.Field.prototype.msgTarget = 'side';
qtip: 当鼠标移动到控件上面时显示提示
title: 在浏览器的标题显示,但是测试结果是和qtip一样的
under: 在控件的底下显示错误提示
side: 在控件右边显示一个错误图标,鼠标指向图标时显示错误提示
[element id]: 错误提示显示在指定id的HTML元件中
5.如果需要定义控件有两种方法(以gridPanel为例子)
a.new Ext.grid.GridPanel({
........
})
b.{
xtype:’gridpanel’,
........
}
使用new 的方式是立即创建组件 而使用xtype则是延迟创建 这样的好处是当需要渲染此组件时才创建 类似hibernate的延迟加载 都是为了提高效率!
6.在JS中把JSON字符串转为对象,Ext.decode ( )
在JS中把对象转为JSON字符串,Ext.encode ( )
7.ext获得html标签ext.get(‘id’).dom.value
8.可扩展的grid
(1)首先引入JS:RowExpander.js
(2)定义这个控件
var expander = new Ext.grid.RowExpander({
tpl : new Ext.Template(
//{userName}是data的值
'<p><b>用户名:</b> {userName}</p><br>',
'<p><b>登陆名:</b> {loginName}</p><br>',
'<p><b>职务:</b> {office}</p><br>',
'<p><b>部门:</b> {organize}</p><br>',
'<p><b>用户类型:</b> {userType}</p><br>',
'<p><b>锁定状态:</b> {lockStatus}</p>'
)
});
(3)在Ext.grid.ColumnModel中加入它
(4)在Ext.grid.GridPanel中也要加入它
9.可以在容器组件中把hideLabels设置为true,这样将不会显示容器中字段的标签了
10.使用enter键代替tab键切换焦点
var el =Ext.get('例如:formmane');
var map = new Ext.KeyMap(el, {
key: Ext.EventObject.ENTER,
fn: function(){
event.keyCode=9;
}
});
11.Ext.get方法是获取一个元素,你可以通过他来修改控件的属性
Ext.getCmp方法是获得一个Ext控件,你可以通过他来调用控件的方法
12.combo
相当于select
属性介绍:hiddenName,用来传值。在程序中取值要用到。
在items里,类型(xtype)设置成combo。
13.分页参数
bbar: new Ext.PagingToolbar({
pageSize: 15,
store: ds,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,一共 {2} 条',
paramNames : {start: 'begin', limit: 'end'},
emptyMsg: "没有记录"
})
这样当你需要ds.load({params:{begin:0,end:15}});时就可以修改参数名了。
条件查询,后边还可以加入参数。
booktype_ds.load({params:{start:minLimit, limit:maxLimit,bookTitle:searchText,bookDetail:detail}});
14.刷新树,在某些操作(如添加或删除节点)执行后,需要即时刷新树
tree.root.reload()
15.切记:当控件用allowBlank :false(验证不为空)时,如果此控件的value不能为’’,如果需要为空要这么写:value:undefined