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

📄 zpgrid.js

📁 zapatec suite 最新版 20070204,非常棒的ajax widgets 工具包
💻 JS
📖 第 1 页 / 共 5 页
字号:
bRebuildPrimaryKey=true;}for(;iRow<oData.rows.length;iRow++){var oRow=oData.rows[iRow];oRow.i=this.rowsIndex.length;oRow=this.prepareRow(oRow);this.rows.splice(iInsertPos++,0,oRow);this.rowsIndex.push(oRow);bRebuildPrimaryKey=true;}if(bRebuildPrimaryKey){oPrimaryKey=null;this.buildPrimaryKey();}else{this.primaryKey=oPrimaryKey;oPrimaryKey=null;}}if(!oData.noRefresh){this.modify();}return aRemoved;};Zapatec.Grid.prototype.removeRow=function(iRow){var oRow=this.rows[iRow];if(!oRow){return;}var undef;this.rowsIndex[oRow.i]=undef;var aRows=this.rows.splice(iRow,1);this.rebuildPrimaryKey();return aRows[0];};Zapatec.Grid.prototype.spliceColumns=function(aData){if(!aData){return 0;}this.fireEvent('gridPrepareModify');var aFields=this.fields;var iFields=aFields.length;var aRows=this.rows;var iRows=aRows.length;var iPrimaryKey=this.primaryKeyColumn;var bRebuildPrimaryKey=false;if(!(aData instanceof Array)){aData=[aData];}var iRemoved=0;var iDataLen=aData.length;var iData,oData,iInsertPos,iHowManyToRemove,aSpliceArgs,aColumns,iColumns,aRemoved,aUpdates,iRow,aCells,oUpdates,aNewCells;for(iData=0;iData<iDataLen;iData++){oData=aData[iData];iInsertPos=parseInt(oData.atColumnId);if(isNaN(iInsertPos)){iInsertPos=parseInt(oData.afterColumnId);if(!isNaN(iInsertPos)){iInsertPos++;}else{iInsertPos=iFields;}}iHowManyToRemove=parseInt(oData.howMany);if(isNaN(iHowManyToRemove)){iHowManyToRemove=0;}aSpliceArgs=[iInsertPos,iHowManyToRemove];aColumns=oData.fields;if(!(aColumns instanceof Array)){aColumns=[aColumns];}iColumns=aColumns.length;aRemoved=aFields.splice.apply(aFields,aSpliceArgs.concat(aColumns));if(aRemoved&&aRemoved.length){iRemoved+=aRemoved.length;}aUpdates=oData.rows;if(!(aUpdates instanceof Array)){aUpdates=[];}for(iRow=0;iRow<iRows;iRow++){aCells=aRows[iRow].cells;oUpdates=aUpdates[iRow];if(!oUpdates){oUpdates={};}aNewCells=oUpdates.cells;if(!(aNewCells instanceof Array)){aNewCells=new Array(iColumns);}else if(aNewCells.length<iColumns){aNewCells=aNewCells.concat(new Array(iColumns-aNewCells.length));}else if(aNewCells.length>iColumns){aNewCells.splice(iColumns,aNewCells.length-iColumns);}aCells.splice.apply(aCells,aSpliceArgs.concat(aNewCells));}if(typeof iPrimaryKey=='number'&&iPrimaryKey>=iInsertPos){if(iPrimaryKey<iInsertPos+iHowManyToRemove){this.primaryKeyColumn=null;this.primaryKey=null;bRebuildPrimaryKey=false;}else{this.primaryKeyColumn+=iColumns-iHowManyToRemove;if(this.primaryKeyColumn<0){this.primaryKeyColumn=null;this.primaryKey=null;bRebuildPrimaryKey=false;}else{bRebuildPrimaryKey=true;}}}}this.prepareData();if(bRebuildPrimaryKey){this.rebuildPrimaryKey();}if(!oData.noRefresh){this.modify();}return iRemoved;};Zapatec.Grid.prototype.deleteColumns=function(oArg){var aColumns=oArg.columns;if(!(aColumns instanceof Array)){if(typeof aColumns=='undefined'){return 0;}aColumns=[aColumns];}var iDeleted=0;var aFields=this.fields;var iColumns=aColumns.length;var aRows=this.rows;var iRows=aRows.length;var iPrimaryKey=this.primaryKeyColumn;var bRebuildPrimaryKey=false;var iCol,iColumn,aDeleted,iRow;for(iCol=0;iCol<iColumns;iCol++){iColumn=parseInt(aColumns[iCol]);if(!isNaN(iColumn)){aDeleted=aFields.splice(iColumn,1);for(iRow=0;iRow<iRows;iRow++){aRows[iRow].cells.splice(iColumn,1);}if(aDeleted&&aDeleted.length){iDeleted++;if(typeof iPrimaryKey=='number'){if(iPrimaryKey==iColumn){this.primaryKeyColumn=null;this.primaryKey=null;bRebuildPrimaryKey=false;}else if(iPrimaryKey>iColumn){this.primaryKeyColumn--;if(this.primaryKeyColumn<0){this.primaryKeyColumn=null;this.primaryKey=null;bRebuildPrimaryKey=false;}else{bRebuildPrimaryKey=true;}}}}}}this.prepareData();if(bRebuildPrimaryKey){this.rebuildPrimaryKey();}if(!oArg.noRefresh){this.refresh();}return iDeleted;};Zapatec.Grid.prototype.modify=function(){this.setFilters();this.displayFilterOut();this.fireEvent('gridModified');};Zapatec.Grid.prototype.sort=function(aArg){if(aArg){if(!(aArg instanceof Array)){aArg=[aArg];}this.order=[];for(var iArg=0;iArg<aArg.length;iArg++){var oArg=aArg[iArg];if(!oArg){break;}this.order.push({col:oArg.column*1,desc:oArg.desc,lt:oArg.desc?1:-1,gt:oArg.desc?-1:1});}}if(this.order.length&&this.order.length<this.fields.length){var oUsed={};for(var iPos=0;iPos<this.order.length;iPos++){oUsed[this.order[iPos].col]=true;}for(var iCol=0;iCol<this.fields.length&&this.order.length<this.fields.length;iCol++){if(oUsed[iCol]){continue;}this.order.push({col:iCol,lt:-1,gt:1});}}for(var iCol=0;iCol<this.fields.length;iCol++){var oField=this.fields[iCol];if(oField){var undef;oField.sorted=undef;oField.sortedDesc=undef;if(this.order.length&&iCol==this.order[0].col){if(this.order[0].desc){oField.sortedDesc=true;}else{oField.sorted=true;}}}}if(!this.order.length){return;}for(var iPos=0;iPos<this.order.length;iPos++){var iCol=this.order[iPos].col;if(this.fields[iCol]&&typeof this.fields[iCol].sortByColumn!='undefined'){this.order[iPos].col=this.fields[iCol].sortByColumn*1;}}if(!this.config.dataOnDemand){if(this.displayUpdating){this.displayUpdating();}var oGrid=this;setTimeout(function(){oGrid.filteredRows.sort(function(oLeft,oRight){for(var iCol=0;iCol<oGrid.order.length;iCol++){var iColNum=oGrid.order[iCol].col;var leftVal=oGrid.getCellValueCompare(oLeft.cells[iColNum]);var rightVal=oGrid.getCellValueCompare(oRight.cells[iColNum]);if(leftVal==rightVal){continue;}if(leftVal<rightVal){return oGrid.order[iCol].lt;}return oGrid.order[iCol].gt;}return 0;});oGrid=null;},0);}};Zapatec.Grid.prototype.unsort=function(){this.order=[];this.applyFilters();};Zapatec.Grid.sort=function(iGridId,iCol){var oGrid=Zapatec.Widget.getWidgetById(iGridId);if(!oGrid||!oGrid.fields[iCol]){return;}if(!oGrid.fields[iCol].sorted){oGrid.sort({column:iCol});}else{oGrid.sort({column:iCol,desc:true});}if(oGrid.config.dataOnDemand){oGrid.loadData();}else{oGrid.refresh();}};Zapatec.Grid.prototype.getCurrentPageNumber=function(){return this.currentPage+1;};Zapatec.Grid.prototype.totalPages=function(){var iRecords=this.recordsDisplayed();var iRowsPerPage;if(this.fitInto){var oAutoresizeFrame=this.autoresizeFrame;iRowsPerPage=oAutoresizeFrame.visibleRows;}else{iRowsPerPage=this.config.rowsPerPage;}if(iRowsPerPage<=0||iRecords<=0){return 1;}return Math.ceil(iRecords/iRowsPerPage);};Zapatec.Grid.prototype.setCurrentPage=function(iPage){if(iPage<0||iPage>=this.totalPages()){return;}var iDirection=iPage-this.currentPage;if(!iDirection){return;}if(this.fitInto){var oAutoresizeFrame=this.autoresizeFrame;if(Math.abs(iDirection)==1){oAutoresizeFrame.direction=iDirection;oAutoresizeFrame.currentRow+=oAutoresizeFrame.visibleRows*iDirection;}else{oAutoresizeFrame.direction=0;oAutoresizeFrame.currentRow=iPage*oAutoresizeFrame.visibleRows;}if(oAutoresizeFrame.currentRow<0){oAutoresizeFrame.direction=0;oAutoresizeFrame.visibleRows+=oAutoresizeFrame.currentRow;oAutoresizeFrame.currentRow=0;}else{var iRecords=this.recordsDisplayed();if(oAutoresizeFrame.currentRow+oAutoresizeFrame.visibleRows>iRecords){oAutoresizeFrame.direction=-1;oAutoresizeFrame.currentRow=iRecords-oAutoresizeFrame.visibleRows;}}this.currentPage=Math.ceil(oAutoresizeFrame.currentRow/oAutoresizeFrame.visibleRows);}else{this.currentPage=iPage;}};Zapatec.Grid.prototype.gotoPage=function(iPage){this.setCurrentPage(iPage);if(this.config.dataOnDemand){this.loadData();}else{this.refresh();}};Zapatec.Grid.gotoPage=function(iGridId,iPage){var oGrid=Zapatec.Widget.getWidgetById(iGridId);if(oGrid){oGrid.gotoPage(iPage-1);}};Zapatec.Grid.nextPage=function(iGridId){var oGrid=Zapatec.Widget.getWidgetById(iGridId);if(oGrid){oGrid.gotoPage(oGrid.currentPage+1);}};Zapatec.Grid.lastPage=function(iGridId){var oGrid=Zapatec.Widget.getWidgetById(iGridId);if(oGrid){oGrid.gotoPage(oGrid.totalPages()-1);}};Zapatec.Grid.previousPage=function(iGridId){var oGrid=Zapatec.Widget.getWidgetById(iGridId);if(oGrid){oGrid.gotoPage(oGrid.currentPage-1);}};Zapatec.Grid.firstPage=function(iGridId){var oGrid=Zapatec.Widget.getWidgetById(iGridId);if(oGrid){oGrid.gotoPage(0);}};Zapatec.Grid.prototype.setCurrentVerticalOffset=function(oArg){var iRowId;if(typeof oArg=='number'){iRowId=oArg;}else{if(!oArg){return;}iRowId=oArg.rowId;if(typeof iRowId!='number'){iRowId=this.getRowId(oArg.row);if(typeof iRowId!='number'){return;}}}if(iRowId<0){iRowId=0;}var iRows=this.recordsDisplayed()-1;if(iRowId>iRows){iRowId=iRows;}this.currentVerticalOffset=iRowId;};Zapatec.Grid.prototype.gotoVerticalOffset=function(oArg){this.setCurrentVerticalOffset(oArg);if(this.config.dataOnDemand){this.loadData();}else{this.refresh();}};Zapatec.Grid.prototype.setCurrentHorizontalOffset=function(oArg){var iFieldId;if(typeof oArg=='number'){iFieldId=oArg;}else{if(!oArg){return;}iFieldId=oArg.fieldId;if(typeof iFieldId!='number'){iFieldId=this.getFieldId(oArg.field);if(typeof iFieldId!='number'){return;}}}if(this.fields[iFieldId]){this.currentHorizontalOffset=iFieldId;}};Zapatec.Grid.prototype.gotoHorizontalOffset=function(oArg){this.setCurrentHorizontalOffset(oArg);if(this.config.dataOnDemand){this.loadData();}else{this.refresh();}};Zapatec.Grid.prototype.gotoRowId=function(iRowId){var aRows=this.getFilteredRows();for(var iRow=0;iRow<aRows.length;iRow++){if(this.getRowId(aRows[iRow])==iRowId){this.gotoPage(Math.floor(iRow/this.config.rowsPerPage));return;}}};Zapatec.Grid.prototype.applyFilters=function(){this.fireEvent('gridPrepareFilter');if(this.config.dataOnDemand){this.setCurrentPage(0);this.loadData();this.fireEvent('gridFiltered');}else{if(this.displayUpdating){this.displayUpdating();}var oGrid=this;setTimeout(function(){oGrid.setFilters();oGrid.fireEvent('gridFiltered');},0);}};Zapatec.Grid.prototype.setFilters=function(){this.filteredRows=this.rows.slice();var aFilteredRows=this.filteredRows;var aRegexpFilters=[];var aTextFilters=[];var aFields=this.fields;var iFields=aFields.length;var iCol,oField,aHiddenValues,minValue,maxValue,iRow,oCell;for(iCol=0;iCol<iFields;iCol++){oField=aFields[iCol];if(!oField){continue;}aHiddenValues=oField.hiddenValues;minValue=oField.minValue;maxValue=oField.maxValue;if(aHiddenValues instanceof Array||typeof minValue!='undefined'||typeof maxValue!='undefined'){for(iRow=aFilteredRows.length-1;iRow>=0;iRow--){oCell=aFilteredRows[iRow].cells[iCol];if(!oCell){continue;}if(aHiddenValues instanceof Array&&Zapatec.Utils.arrIndexOf(aHiddenValues,this.getCellValueString(oCell))>=0){aFilteredRows.splice(iRow,1);continue;}if(minValue>this.getCellValueCompare(oCell)){aFilteredRows.splice(iRow,1);continue;}if(maxValue<this.getCellValueCompare(oCell)){aFilteredRows.splice(iRow,1);continue;}}}if(oField.regexpFilter){aRegexpFilters.push(iCol);}if(oField.textFilter){aTextFilters.push(iCol);}}var bRemove,iFilter,sSearchValue,oRegExp;var iRegexpFilters=aRegexpFilters.length;if(iRegexpFilters){for(iRow=aFilteredRows.length-1;iRow>=0;iRow--){bRemove=true;for(iFilter=0;iFilter<iRegexpFilters;iFilter++){iCol=aRegexpFilters[iFilter];oField=aFields[iCol];oCell=aFilteredRows[iRow].cells[iCol];if(!oCell){continue;}sSearchValue=this.getCellValueString(oCell);sSearchValue=sSearchValue.replace(/<[^>]*>/g,'');oRegExp=typeof oField.regexpFilter=='string'?new RegExp(oField.regexpFilter):oField.regexpFilter;if(oRegExp.test&&oRegExp.test(sSearchValue)){bRemove=false;break;}}if(bRemove){aFilteredRows.splice(iRow,1);}}}var iTextFilters=aTextFilters.length;if(iTextFilters){for(iRow=aFilteredRows.length-1;iRow>=0;iRow--){bRemove=true;for(iFilter=0;iFilter<iTextFilters;iFilter++){iCol=aTextFilters[iFilter];oField=aFields[iCol];oCell=aFilteredRows[iRow].cells[iCol];if(!oCell){continue;}if(this.searchCell({cell:oCell,searchValue:oField.textFilter})>=0){bRemove=false;break;}}if(bRemove){aFilteredRows.splice(iRow,1);}}}this.sort();this.setCurrentPage(0);this.refresh();};Zapatec.Grid.prototype.searchCell=function(oArg){if(!oArg){return;}var oCell=oArg.cell;if(typeof this.getSearchByType=='function'){var oField=this.getFieldByCell(oCell);if(!oField){return;}var sSearchFunc=this.getSearchByType(oField.dataType);if(sSearchFunc){return this[sSearchFunc](oArg);}}var sText=this.getCellValueString(oCell);sText=sText.replace(/<[^>]*>/g,'');return sText.indexOf(oArg.searchValue);};Zapatec.Grid.prototype.filterOut=function(oArg){if(this.filterOutColumn(oArg)){this.applyFilters();}};Zapatec.Grid.prototype.filterOutColumn=function(oArg){if(!oArg||typeof oArg.value=='undefined'){return false;}var aVals=oArg.value;if(!(aVals instanceof Array)){aVals=[aVals];}var aCols=oArg.column;if(!(aCols instanceof Array)){aCols=[aCols];}var bApply=false;for(var iCol=0;iCol<aCols.length;iCol++){var oField=this.fields[aCols[iCol]];if(!oField){continue;}if(!(oField.hiddenValues instanceof Array)){oField.hiddenValues=[];}if(oArg.show){for(var iVal=0;iVal<aVals.length;iVal++){for(var iHv=oField.hiddenValues.length-1;iHv>=0;iHv--){if(oField.hiddenValues[iHv]==aVals[iVal]){oField.hiddenValues.splice(iHv,1);}}}}else{for(var iVal=0;iVal<aVals.length;iVal++){oField.hiddenValues.push(aVals[iVal]);}}bApply=true;}return bApply;};Zapatec.Grid.prototype.unfilterOut=function(oArg){if(this.unfilterOutColumn(oArg)){this.applyFilters();}};Zapatec.Grid.prototype.unfilterOutColumn=function(oArg){if(!oArg){return false;}

⌨️ 快捷键说明

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