日期:2014-05-16  浏览次数:20280 次

项目开发中遇到的extjs常见问题
1.把一个汉字转成两个字符计数
Ext.getCmp('searchKeyWord').getValue().trim().replace(/[^\x00-\xff]/g, '**').length


项目开发中遇到的extjs常见问题
事件触发机制

l         给某一个控件添加事件。

obj.addEvents( {search : true });

l         给某一个事件添加处理函数

n         给一个对象或变量添加监听及对应得处理,可以在创建时,通过属性listener添加。

n         或者通过 obj.on(‘event’,function(){})

n         或者通过obj.addListener(“event”,function)



l         出发一个事件,params是要传给事件对应的处理函数的参数

Obj.fireEvent(‘eventName’,params)

工具栏

获取工具栏元素方法

var items = this.preview.topToolbar.items;

           items.get('tab').enable();

           items.get('win').enable();

Panel及子类

ViewPort

Viewpor代表整个浏览器的显示区域,会被渲染到html body中,并会随着浏览器显示区域大小自动改变。

Window

1.       创建属性一般设置

{          width : 500,     

           height : 300,

           layout : 'fit',

           constrain : true,    把窗口的显示位置限制在viewport中

           constrainHeader : true,

           items : this.form,

           plain : true,

           closeAction:’hide’

           frame : true,

           modal : true, 窗口显示时,把窗口以外的元素用一个样式遮盖

           buttonAlign : 'center' 按钮居中

      }







2.       Beforeclose事件

当窗口关闭以前可以做一些操作,如检查窗口内部表单数据的改变与否

   winObj.on('beforeclose', this.checkDirty, this);

3.       按钮的获取

要获取window的按钮 

winObj.buttons 

disableButton:function(){

           for(i=0;i<this.buttons.length;i++)

               this.buttons[i].disable();//hide()

           },

      enableButton:function(){

           for(i=0;i<this.buttons.length;i++)     

            this.buttons[i].enable()//show();

      }

MessageBox

1.       点击确认/取消后执行function

   Ext.MessageBox.alert/confirm ("信息",msg,

function(button, text) {

//当confirm时 判断按钮

if (button == "yes")

   //TODO something

},  this);

TabPanel

当页签改变的时候出一个处理函数

Ext.getCmp('tabpanel').on('tabchange',this.tabChange,this);



获取某一个页签,在页签中的给id 属性,通过id获取

Ext.getCmp('tabpanel').getItem('id