⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gridview.js

📁 EXT2.0的中文API源代码
💻 JS
📖 第 1 页 / 共 4 页
字号:
        if(hscroll !== false){            var cleft = parseInt(cellEl.offsetLeft, 10);            var cright = cleft + cellEl.offsetWidth;            var sleft = parseInt(c.scrollLeft, 10);            var sright = sleft + c.clientWidth;            if(cleft < sleft){                c.scrollLeft = cleft;            }else if(cright > sright){                c.scrollLeft = cright-c.clientWidth;            }        }        return cellEl || rowEl;    },    // private    insertRows : function(dm, firstRow, lastRow, isUpdate){        if(firstRow == 0 && lastRow == dm.getCount()-1){            this.refresh();        }else{            if(!isUpdate){                this.fireEvent("beforerowsinserted", this, firstRow, lastRow);            }            var html = this.renderRows(firstRow, lastRow);            var before = this.getRow(firstRow);            if(before){                Ext.DomHelper.insertHtml('beforeBegin', before, html);            }else{                Ext.DomHelper.insertHtml('beforeEnd', this.mainBody.dom, html);            }            if(!isUpdate){                this.fireEvent("rowsinserted", this, firstRow, lastRow);                this.processRows(firstRow);            }        }    },    // private    deleteRows : function(dm, firstRow, lastRow){        if(dm.getRowCount()<1){            this.refresh();        }else{            this.fireEvent("beforerowsdeleted", this, firstRow, lastRow);            this.removeRows(firstRow, lastRow);            this.processRows(firstRow);            this.fireEvent("rowsdeleted", this, firstRow, lastRow);        }    },    // private    getColumnStyle : function(col, isHeader){        var style = !isHeader ? (this.cm.config[col].css || '') : '';        style += 'width:'+this.getColumnWidth(col)+';';        if(this.cm.isHidden(col)){            style += 'display:none;';        }        var align = this.cm.config[col].align;        if(align){            style += 'text-align:'+align+';';        }        return style;    },    // private    getColumnWidth : function(col){        var w = this.cm.getColumnWidth(col);        if(typeof w == 'number'){            return (Ext.isBorderBox ? w : (w-this.borderWidth > 0 ? w-this.borderWidth:0)) + 'px';        }        return w;    },    // private    getTotalWidth : function(){        return this.cm.getTotalWidth()+'px';    },    // private    fitColumns : function(preventRefresh, onlyExpand, omitColumn){        var cm = this.cm, leftOver, dist, i;        var tw = cm.getTotalWidth(false);        var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset;        if(aw < 20){ // not initialized, so don't screw up the default widths            return;        }        var extra = aw - tw;        if(extra === 0){            return false;        }        var vc = cm.getColumnCount(true);        var ac = vc-(typeof omitColumn == 'number' ? 1 : 0);        if(ac === 0){            ac = 1;            omitColumn = undefined;        }        var colCount = cm.getColumnCount();        var cols = [];        var extraCol = 0;        var width = 0;        var w;        for (i = 0; i < colCount; i++){            if(!cm.isHidden(i) && !cm.isFixed(i) && i !== omitColumn){                w = cm.getColumnWidth(i);                cols.push(i);                extraCol = i;                cols.push(w);                width += w;            }        }        var frac = (aw - cm.getTotalWidth())/width;        while (cols.length){            w = cols.pop();            i = cols.pop();            cm.setColumnWidth(i, Math.max(this.grid.minColumnWidth, Math.floor(w + w*frac)), true);        }        if((tw = cm.getTotalWidth(false)) > aw){            var adjustCol = ac != vc ? omitColumn : extraCol;             cm.setColumnWidth(adjustCol, Math.max(1,                     cm.getColumnWidth(adjustCol)- (tw-aw)), true);               }        if(preventRefresh !== true){            this.updateAllColumnWidths();        }                return true;    },    // private    autoExpand : function(preventUpdate){        var g = this.grid, cm = this.cm;        if(!this.userResized && g.autoExpandColumn){            var tw = cm.getTotalWidth(false);            var aw = this.grid.getGridEl().getWidth(true)-this.scrollOffset;            if(tw != aw){                var ci = cm.getIndexById(g.autoExpandColumn);                var currentWidth = cm.getColumnWidth(ci);                var cw = Math.min(Math.max(((aw-tw)+currentWidth), g.autoExpandMin), g.autoExpandMax);                if(cw != currentWidth){                    cm.setColumnWidth(ci, cw, true);                    if(preventUpdate !== true){                        this.updateColumnWidth(ci, cw);                    }                }            }        }    },    // private    getColumnData : function(){        // build a map for all the columns        var cs = [], cm = this.cm, colCount = cm.getColumnCount();        for(var i = 0; i < colCount; i++){            var name = cm.getDataIndex(i);            cs[i] = {                name : (typeof name == 'undefined' ? this.ds.fields.get(i).name : name),                renderer : cm.getRenderer(i),                id : cm.getColumnId(i),                style : this.getColumnStyle(i)            };        }        return cs;    },    // private    renderRows : function(startRow, endRow){        // pull in all the crap needed to render rows        var g = this.grid, cm = g.colModel, ds = g.store, stripe = g.stripeRows;        var colCount = cm.getColumnCount();        if(ds.getCount() < 1){            return "";        }        var cs = this.getColumnData();        startRow = startRow || 0;        endRow = typeof endRow == "undefined"? ds.getCount()-1 : endRow;        // records to render        var rs = ds.getRange(startRow, endRow);        return this.doRender(cs, rs, ds, startRow, colCount, stripe);    },    // private    renderBody : function(){        var markup = this.renderRows();        return this.templates.body.apply({rows: markup});    },    // private    refreshRow : function(record){        var ds = this.ds, index;        if(typeof record == 'number'){            index = record;            record = ds.getAt(index);        }else{            index = ds.indexOf(record);        }        var cls = [];        this.insertRows(ds, index, index, true);        this.getRow(index).rowIndex = index;        this.onRemove(ds, record, index+1, true);        this.fireEvent("rowupdated", this, index, record);    },    /**     * Refreshs the grid UI     * @param {Boolean} headersToo (optional) True to also refresh the headers     */    refresh : function(headersToo){        this.fireEvent("beforerefresh", this);        this.grid.stopEditing();        var result = this.renderBody();        this.mainBody.update(result);                if(headersToo === true){            this.updateHeaders();            this.updateHeaderSortState();        }        this.processRows(0, true);        this.layout();        this.applyEmptyText();        this.fireEvent("refresh", this);    },    // private    applyEmptyText : function(){        if(this.emptyText && !this.hasRows()){            this.mainBody.update('<div class="x-grid-empty">' + this.emptyText + '</div>');        }    },    // private    updateHeaderSortState : function(){        var state = this.ds.getSortState();        if(!state){            return;        }        if(!this.sortState || (this.sortState.field != state.field || this.sortState.direction != state.direction)){            this.grid.fireEvent('sortchange', this.grid, state);        }        this.sortState = state;        var sortColumn = this.cm.findColumnIndex(state.field);        if(sortColumn != -1){            var sortDir = state.direction;            this.updateSortIcon(sortColumn, sortDir);        }    },    // private    destroy : function(){        return;        if(this.colMenu){            this.colMenu.removeAll();            Ext.menu.MenuMgr.unregister(this.colMenu);            this.colMenu.getEl().remove();            delete this.colMenu;        }        if(this.hmenu){            this.hmenu.removeAll();            Ext.menu.MenuMgr.unregister(this.hmenu);            this.hmenu.getEl().remove();            delete this.hmenu;        }        if(this.grid.enableColumnMove){            var dds = Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id];            if(dds){                for(var dd in dds){                    if(!dds[dd].config.isTarget && dds[dd].dragElId){                        var elid = dds[dd].dragElId;                        dds[dd].unreg();                        Ext.get(elid).remove();                    } else if(dds[dd].config.isTarget){                        dds[dd].proxyTop.remove();                        dds[dd].proxyBottom.remove();                        dds[dd].unreg();                    }                    if(Ext.dd.DDM.locationCache[dd]){                        delete Ext.dd.DDM.locationCache[dd];                    }                }                delete Ext.dd.DDM.ids['gridHeader' + this.grid.getGridEl().id];            }        }        this.initData(null, null);        Ext.EventManager.removeResizeListener(this.onWindowResize, this);    },    // private    onDenyColumnHide : function(){    },    // private    render : function(){        var cm = this.cm;        var colCount = cm.getColumnCount();        if(this.grid.monitorWindowResize === true){            Ext.EventManager.onWindowResize(this.onWindowResize, this, true);        }        if(this.autoFill){            this.fitColumns(true, true);        }else if(this.forceFit){            this.fitColumns(true, false);        }else if(this.grid.autoExpandColumn){            this.autoExpand(true);        }        this.renderUI();        //this.refresh();    },    // private    onWindowResize : function(){        if(!this.grid.monitorWindowResize || this.grid.autoHeight){            return;        }        this.layout();    },    /* --------------------------------- Model Events and Handlers --------------------------------*/    // private    initData : function(ds, cm){        if(this.ds){            this.ds.un("load", this.onLoad, this);            this.ds.un("datachanged", this.onDataChange, this);            this.ds.un("add", this.onAdd, this);            this.ds.un("remove", this.onRemove, this);            this.ds.un("update", this.onUpdate, this);            this.ds.un("clear", this.onClear, this);        }        if(ds){            ds.on("load", this.onLoad, this);            ds.on("datachanged", this.onDataChange, this);            ds.on("add", this.onAdd, this);            ds.on("remove", this.onRemove, this);            ds.on("update", this.onUpdate, this);            ds.on("clear", this.onClear, this);        }        this.ds = ds;        if(this.cm){            this.cm.un("configchange", this.onColConfigChange, this);            this.cm.un("widthchange", this.onColWidthChange, this);            this.cm.un("headerchange", this.onHeaderChange, this);            this.cm.un("hiddenchange", this.onHiddenChange, this);            this.cm.un("columnmoved", this.onColumnMove, this);            this.cm.un("columnlockchange", this.onColumnLock, this);        }        if(cm){            cm.on("configchange", this.onColConfigChange, this);            cm.on("widthchange", this.onColWidthChange, this);            cm.on("headerchange", this.onHeaderChange, this);            cm.on("hiddenchange", this.onHiddenChange, this);            cm.on("columnmoved", this.onColumnMove, this);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -