ExtJS 技巧笔记
http://d.download.csdn.net/down/1169034/city2046
Ext.fly(grid.getView().getRow(0)).slideIn('t'); //选择第一条有从上往下的插入效果
Ext.fly(grid.getView().getRow(0)).frame('#cadaf9',3);//选择一条记录带蓝色光晕效果
enableKeyEvents:true //激活键盘事件 ,TextField 的键盘事件默认是关闭的
cmp.el.mask('正在发送...', 'x-mask-loading'); //给组件上遮罩
cmp.el.unmask(); //隐藏遮罩
this.previousSibling();//当前组件的前一个组件(同一个容器)
this.nextSibling(); //当前组件的后一个组件(同一个容器)
//给组件增加快捷键(CTRL + 回车)
{
xtype: 'textarea',
listeners: {
'render': function (input) {
new Ext.KeyMap(input.getEl(), [{
key: 13,
ctrl: true,
fn: function () {},
scope: this
}]);
}
}
}
//在分页组件前面添加组件
var page = new Ext.PagingToolbar({
store: store,
displayInfo: true,
pageSize: 10
});
page.insert(0, '-');
page.insert(0, { //添加一个日期组件
xtype: 'datefield',
name: 'chatdate',
format: 'Y-m-d',
value: new Date()
});
//XTemplate的使用示例(读取store加载的数据来渲染)
{"root":[{"date":"2009-09-07T15:52:45","sender":"廖瀚卿","text":"你好asdf"},{"date":"2009-09-07T15:52:51","sender":"asdf","text":"你好廖瀚卿"},{"date":"2009-09-07T15:52:59","sender":"asdf","text":"我这个是测试的,你那里能看到吗?"},{"date":"2009-09-07T15:53:09","sender":"廖瀚卿","text":"能看到,很不错哦:)"},{"date":"2009-09-07T15:53:23","sender":"asdf","text":"鸭版斑斑啦"},{"date":"2009-09-07T15:53:31","sender":"廖瀚卿","text":"呵呵,你真搞笑"},{"date":"2009-09-07T15:53:45","sender":"廖瀚卿","text":"对了。你好吗?\n"},{"date":"2009-09-07T15:53:52","sender":"asdf","text":"我很好,真的:)"},{"date":"2009-09-07T15:54:00","sender":"asdf","text":"你好不好,告诉我啊"},{"date":"2009-09-07T15:54:06","sender":"廖瀚卿","text":"我也很好:0"}],"success":true,"totalProperty":10}
//以上是store加载时火狐检测的json字符串,我们可以监听store的load事件来做XTemplate的渲染
var tpl = new Ext.XTemplate(
'',
'{data:this.parseSender()}: {data:this.parseDate}
',
'
{data:this.parseText}
', '
',
{
compiled: true,
parseSender: function (json) {
return json.sender;
},
parseDate: function (json) {
return Ext.util.Format.date(json.date, 'Y-m-d H:i:s');
},
parseText: function (json) {
return json.text
}
}
);
var store = new Ext.data.Store({
url: 'findChatHistory.action',
reader: new Ext.data.JsonReader({
totalProperty: 'totalProperty',
root: 'root'
},
['mid', 'id', 'sender', 'text', {
name: 'date',
dateFormat: "Y-m-dTH:i:s",
//struts2的json-plugin处理日期默认格式化为这种方式,要想在extjs中正确处理日期格式,这里很重
type: 'date'
}]),
listeners: {
'load': function (sd, records, options) {
/*console.log(records);//其实records是一个对象数组,输出内容和格式如下,从格式可以得知真正的数据在data=Object里面
[Object phantom=true id=ext-record-26 data=Object, Object phantom=true id=ext-record-27 data=Object, Object phantom=true id=ext-record-28 data=Object, Object phantom=true id=ext-record-29 data=Object, Object phantom=true id=ext-record-30 data=Object, Object phantom=true id=ext-record-31 data=Object, Object phantom=true id=ext-record-32 data=Object, Object phantom=true id=ext-record-33 data=Object, Object phantom=true id=ext-record-34 data=Object, Object phantom=true id=ext-record-35 data=Object]*/
tpl.overwrite(Ext.fly('history'), records); //records为服务器返回的所有记录
}
}
});
//变换元素大小以及动画的特效
function scaleElement(id) {
var el = Ext.get(id);
el.scale(el.getWidth() /1.2,el.getHeight() /1.2,{
easing: 'backBoth',//膨胀效果(先变大,再变得小于目标尺寸,最后恢复目标尺寸)
// easing: 'backIn',//膨胀效果(先变得大于目标尺寸,最后恢复目标尺寸)
// easing: 'backOut',//膨胀效果(先变得小于目标尺寸,最后恢复目标尺寸)
// easing: 'bounceBoth',//来回大小振动后恢复目标尺寸