ExtJS 使用技巧(持续更新)

来源:互联网 发布:js绑定click事件 编辑:程序博客网 时间:2024/05/20 03:08

2017-11-3 更新
前段时间太忙了,一直以来没有更新博客。近期应该会写一篇总结这段时间工作的博客。

grid报错

Can not read 'offsetHeight' of undefined

将Grid的BuffererRenderer的值设置为false,这是因为Grid的store还没加载完就渲染了Grid。


GRID单元格鼠标放上显示全部内容:

renderer:function(v,m,r){            var max=5;            m.tdAttr = 'data-qtip="'+v+'"';            return v.length<max?v:v.substring(0,max-3)+'...';        }

form表单-单选按钮获取选中状态的值:

var checkWay=form.getValues()['checkWay'];

Form 表单值改变时,提示保存

trackRestOnload:true,//与isDirty配合使用

grid单元格拖动排序

viewConfig:{    plugins:{        ptype:'gridviewdragdrop',        dragText:'拖动进行排序'    },    listeners:{         drop:function(node,data,dropRec,dropPosition){            var store=data.view.store;            var option=new Array("A","B","C","D","E","F");            for(var i=0;i<store.getCount();i++){              store.getAt(i).set('accAnsOption',option[i]);                         //store.commitChanges();            }            data.view.refresh();        }                   }}

自定义分页组件

Ext.define('Ext.ux.CusPagingToolbar', {    extend:'Ext.toolbar.Paging',    alias:'widget.CusPagingToolbar',    displayInfo:true,    prependButtons:true,    dock:'bottom',    initComponent:function(){        var me=this;        me.items=[{            xtype:'combobox',            fieldLabel:'每页显示',            labelWidth:80,            store:new KitchenSink.view.common.store.appTransStore("ACC_PAGINATION"),            width:180,//下拉框的宽度            editable:false,            queryMode: 'local',            valueField: 'TValue',            displayField: 'TSDesc',            value:'BEST',            listeners:{                afterrender:function(combo,records,eOpts){                    var value='';                    //请求转换值数据                    Ext.Ajax.request({                        //框架定义地址  相当于AfcatCC/mgptf/dispatcher                        url:Ext.accGetGeneralURL(),                        //参数中必须含有ajaxParams的key值                        params:{                            ajaxParams:'{"OperateType":"TV","fieldName":"ACC_PAGINATION"}'                        },                        type:'json',                        async:false,                        callback:function(option,sucess,response) {                            var jsonT=Ext.decode(response.responseText);                            var tranStore=jsonT.comContent.ACC_PAGINATION;                            //获得最优条数                            for(var i=0;i<tranStore.length;i++){                                if(tranStore[i].TValue == "BEST"){                                    value=tranStore[i].TSDesc;                                }                            }                        }                       });                    var ownerCt=combo.ownerCt;                    var store=ownerCt.getStore();                    //重新排序转换值                    combo.getStore().sort('TSDesc','ASC');                    //将store中的pagesize赋值到下拉框                    store.pageSize=parseInt(value);                    store.loadPage(1);                },                'select':function(combo,records,eOpts){                    //获取下拉框的值                    var value=parseInt(combo.rawValue);                    var ownerCt=combo.ownerCt;                    var store=ownerCt.getStore();                    //将下拉框的值赋给store的pageSize                    store.pageSize=value;                    //重新加载第一页                    store.loadPage(1);                }            }        },{            xtype:'component',            html:'条',            labelWidth:20        }];        me.callParent();        me.on('afterrender',function(){            me.ownerCt.on('reconfigure',function(){                me.bindStore(me.ownerCt.store||'ext-empty-store',true);            });        });    }}); 

panel销毁时

listeners:{        destroy:function(panel,eOpts){        }    },

Ext iframe自适应高度

var html = "<iframe name=\"papTplIframeUnuse\" frameborder=0  src = "+url+" height=100%  width=100%></iframe>";//嵌入iframe的panel中的layout属性为'fit' 
原创粉丝点击