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

📄 igf_grid.js

📁 一个JSF的商业组件的DEMO,infragistics-netadvantage.lic:NetAdvantage for JSF Vol1 2008,m21A99D6A11FF-9B33DC4B8
💻 JS
📖 第 1 页 / 共 4 页
字号:
// (c) 2007 Infragistics - Do NOT modify the content of this file
// Version 8.1.20081.1004

if(ig){if(!ig.grid){function IgWebGridPackage(){this.TYPE_GRID="Grid";this.TYPE_GRID_CELL="GridCell";this.TYPE_GRID_ROW="GridRow";this.TYPE_GRID_ROW_SCROLL="GridRowScroll";this.TYPE_GRID_SECTION="GridSection";this.TYPE_GRID_ROW_SELECTOR="GridRowSelector";this.TYPE_GRID_COLUMN_HEADER="GridColumnHeader";this.PROP_JUNCTION_EXPANDED_ICON="ojei";this.PROP_JUNCTION_COLLAPSED_ICON="ojci";this.PROP_IS_SCROLLING="igscrlg";this.PROP_IS_LOAD_ON_DEMAND="igLoadOnDemand";this.PARTITIONED_ROW_COUNT="igRowCount";this.PROP_SINGLE_ROW_HEIGHT="singleRowHeight";this.PROP_PREVIOUS_SCROLL_TOP="previousScrollTop";this.PROP_CURRENT_VIRTUAL_PAGE="currentVirtualPage";this.PROP_LOD_MARKER_HEIGHT="lodMarkerHeight";this.PROP_IG_ROW_FETCH_SIZE="igRowFetchSize";this.PROP_IG_SCROLL_TOP_STATE="igScrollTopState";this.LOAD_ON_DEMAND_DEFAULT="default";this.LOAD_ON_DEMAND_PARTITIONED="partitioned";this.PROP_IG_LOADING_IMAGE="igLoadingImage";this.PROP_IG_CURRENT_ROW_COUNT="igCurrentRowCount";this.PROP_IG_NEEDS_SCROLLING="igNeedsScrolling";this.PROP_IG_VIRTUAL_PAGE_COUNT="igVirtualPageCount";this.PROP_IG_LOAD_ON_DEMAND_TIMER_DEFAULT=200;this.PROP_IG_LOAD_ON_DEMAND_TIMER_PARTITIONED=400;this.PROP_IG_LOAD_ON_DEMAND_THRESHOLD=0.25;this.PROP_IG_LOAD_ON_DEMAND_TOOLTIP_OFFSET=50;this.PROP_REMAINDER_COUNT="igRemainderCount";this.init=function(){ig.factory.addClass(ig.grid.TYPE_GRID,IgGrid);ig.factory.addClass(ig.grid.TYPE_GRID_CELL,IgGridCell);ig.factory.addClass(ig.grid.TYPE_GRID_ROW,IgGridRow);ig.factory.addClass(ig.grid.TYPE_GRID_ROW_SCROLL,IgGridScrollingRow);ig.factory.addClass(ig.grid.TYPE_GRID_SECTION,IgGridSection);ig.factory.addClass(ig.grid.TYPE_GRID_COLUMN_HEADER,IgGridColumnHeader);};this.initGrid=function(gridId){var e=ig.grid.getGrid(gridId);if(!ig.isNull(e)){e.init();var form=e.getForm(e.id);if(ig.grid.formsWithGrid[form.id]==null){ig.addEventListener(form,"submit",ig.grid.onBeforeSubmit,false);ig.grid.formsWithGrid[form.id]=form;}}};this.onExpandedOnDemand=function(httpReq){ig.onPartialRefreshDefault(httpReq);var node=ig.getUIElementById(httpReq.getSourceOfRequest());if(!ig.isNull(node)){node.focus();}};this.onExpandRow=function(row){if(!ig.isNull(row)){if(row.hasChild()){icon=(row.isExpanded())?row.getAttribute(ig.grid.PROP_JUNCTION_EXPANDED_ICON,true):row.getAttribute(ig.grid.PROP_JUNCTION_COLLAPSED_ICON,true);if(ig.isNull(row)||row.elm.childNodes.length==0){var scrollingRow=ig.getUIElementById(row.elm.id+"_sr");scrollingRow.updateJunctionIcon(icon);}else{row.updateJunctionIcon(icon);}}
row.repaint();}};this.selectAllRows=function(domNode,select){var grid=this.getGrid(domNode);if(!ig.isNull(grid)){grid.selectAllRows(select);if(grid.isImmediateRowsChangeEvent()){ig.smartSubmit(grid.elm.id,null,null);}}};this.selectRow=function(domNode,select){var row=this.getTargetRow(domNode);if(!ig.isNull(row)){if(select){row.select();}
else{row.unselect();}
var grid=this.getGrid(domNode);if(!ig.isNull(grid)&&grid.isImmediateRowsChangeEvent()){ig.smartSubmit(grid.elm.id,null,null);}}};this.toggleRow=function(rowId){var row=ig.getUIElementById(rowId);if(ig.isNull(row)){row=ig.getUIElementById(rowId+"_fr");}
if(!ig.isNull(row)){if(row.isEnabled()){row.toggle();}}
return false;};this.getGrid=function(domNode){return ig.getTargetUIElement(domNode,this.TYPE_GRID);};this.getTargetRow=function(domNode){var grid=this.getGrid(domNode);if(!ig.isNull(grid)){if(grid.isScrolling())
return ig.getTargetUIElement(domNode,this.TYPE_GRID_ROW_SCROLL);else
return ig.getTargetUIElement(domNode,this.TYPE_GRID_ROW);}};this.getTargetCell=function(domNode){return ig.getTargetUIElement(domNode,this.TYPE_GRID_CELL);};this.getCell=function(domNode){return ig.getTargetUIElement(domNode,this.TYPE_GRID_CELL);};this._registerEventListener=function(obj,evntName,listener)
{if(obj._internalEventListeners==null)
obj._internalEventListeners={};if(obj._internalEventListeners[evntName]==null)
obj._internalEventListeners[evntName]=[];obj._internalEventListeners[evntName].push(listener);};this._fireEvent=function(obj,evntName,args)
{if(obj._internalEventListeners==null)
return;var listeners=obj._internalEventListeners[evntName];if(listeners!=null&&listeners.length>0)
{for(var i=0;i<listeners.length;i++)
listeners[i](args);}};this._unregisterEventListener=function(obj,evntName,listener)
{if(obj._internalEventListeners==null)
return;var listeners=obj._internalEventListeners[evntName];if(listeners!=null&&listeners.length>0)
{for(var i=0;i<listeners.length;i++)
{if(listeners[i]==listener)
{delete obj._internalEventListeners[evntName][i];return;}}}};this.onBeforeSubmit=function(evt)
{for(var i in ig.grid.instances){var grid=ig.grid.instances[i];if(grid.onBeforeSubmit!=null){grid.onBeforeSubmit(evt);}}
return true;}}
ig.grid=new IgWebGridPackage();ig.grid.instances=[];ig.grid.instancesIds=[];ig.grid.formsWithGrid=[];function IgGrid(e){var id=e.id;id=id.replace(/:/,"_");if(!ig.isNull(ig.grid.instances[id])){this._behaviors=ig.grid.instances[id].get_behaviors();}
ig.grid.instances[id]=this;this.IgUIComponent(e);this._gridUtil=ig.grid;};IgGrid.prototype.get_behaviors=function(){if(this._behaviors==null)
this._behaviors=new $IG.GridBehaviorCollection(this);return this._behaviors;}
IgGrid.prototype.createEmptyTable=function(id,css){var t=document.createElement("table");if(ig.NaES(id)){t.id=id;}
if(ig.NaES(css)){t.style.cssText=css;}
t.border="0";t.cellPadding="0";t.cellSpacing="0";return t;};IgGrid.prototype.getColCount=function(){return ig.toFloat(this.getAttribute("igColCount"));};IgGrid.prototype.getColumn=function(i){return new IgGridColumn(this,i);};IgGrid.prototype.getColWidths=function(){return ig.ui.getMaxColWidths(this.getBody());};IgGrid.prototype.getFrozenColCount=function(){return ig.toFloat(this.getAttribute("igFrozenColCount"));};IgGrid.prototype.getFrozenColumnsWidth=function(){var cc=this.getFrozenColCount();var w=0;for(var c=0;c<cc;c++){var col=this.getColumn(c);w+=col.getWidth();}
return w;};IgGrid.prototype.getGrid=function(){return ig.getUIElementById(this.elm.id+"_g");};IgGrid.prototype.getGridContainer=function(){return ig.getUIElementById(this.elm.id);};IgGrid.prototype.getGridTopPager=function(){return ig.getUIElementById(this.elm.id+":topPager");};IgGrid.prototype.getBody=function(){return this.getSection(this.elm.id+"_body",this);};IgGrid.prototype.getColumnsWidth=function(){var fcw=this.getFrozenColumnsWidth();var scw=this.getScrollingColumnsWidth();return fcw+scw;};IgGrid.prototype.getColumnWidthsAsArray=function(){var r=this.elm["igArrColWidths"];if(!ig.isArray(r)){r=new Array();this.elm["igArrColWidths"]=r;}
return r;};IgGrid.prototype.getColumnsFooter=function(){return this.getSection(this.elm.id+"_footer",this);};IgGrid.prototype.getColumnsHeader=function(){return this.getSection(this.elm.id+"_header",this);};IgGrid.prototype.getGridFooter=function(){return this.getSection(this.elm.id+"_gfooter",this);};IgGrid.prototype.getGridHeader=function(){return this.getSection(this.elm.id+"_gheader",this);};IgGrid.prototype.getScrollingGridRowCount=function(){return this.scrollingGridRowCount;};IgGrid.prototype.setScrollingGridRowCount=function(count){this.scrollingGridRowCount=count;};IgGrid.prototype.getRowCount=function(){var rc=0;var sec=this.getColumnsHeader();if(!ig.isNull(sec)){rc+=sec.getRowCount();}
sec=this.getBody();if(!ig.isNull(sec)){rc+=sec.getRowCount();}
sec=this.getColumnsFooter();if(!ig.isNull(sec)){rc+=sec.getRowCount();}
return rc;};IgGrid.prototype.getRows=function(){var b=this.getBody();if(!ig.isNull(b)){if(this.isScrolling()){var f=b.getFixedSection();return f.elm.rows;}else{return b.elm.rows;}}else{return null;}};IgGrid.prototype.getSingleRowHeight=function(){return this.getAttribute(ig.grid.PROP_SINGLE_ROW_HEIGHT);};IgGrid.prototype.setSingleRowHeight=function(height){this.setAttribute(ig.grid.PROP_SINGLE_ROW_HEIGHT,height);};IgGrid.prototype.getScrollingColumnsWidth=function(){var cc=this.getColCount();var fcc=this.getFrozenColCount();var w=0;for(var c=fcc;c<cc;c++){var col=this.getColumn(c);w+=col.getWidth();}
return w;};IgGrid.prototype.getVisibleScrollingColumnsWidth=function(){var gs=this.getGrid().getSize();var result=gs.width-this.getGrid().getBorder("width")-this.getGrid().getPadding("width")-this.getFrozenColumnsWidth();return result;};IgGrid.prototype.getSection=function(id,grid){var r=null;if(!ig.isNull(id)){id=ig.getElementById(id);if(!ig.isNull(id)){r=new IgGridSection(id,grid);}}
return r;};IgGrid.prototype.hasResizableColumn=function(){var r=false;var nbCols=this.getColCount();for(var ic=0;ic<nbCols;ic++){var aCol=this.getColumn(ic);if(!ig.isNull(aCol)){if(aCol.isResizable()){r=true;break;}}}
return r;};IgGrid.prototype.onScrollEndDefault=function(){var grid=ig.grid.getGrid(this);var body=grid.getBody();if(!ig.isNull(body)){var bodyScrollDiv=body.getScrollingDiv();var scrollTop=bodyScrollDiv.elm.scrollTop;if(scrollTop+bodyScrollDiv.elm.clientHeight>bodyScrollDiv.elm.scrollHeight-ig.grid.PROP_IG_LOAD_ON_DEMAND_THRESHOLD*bodyScrollDiv.elm.clientHeight)
{var id=this.elm.id;id=id.replace(/:/,"_");clearInterval(ig.grid.instancesIds[id]);this.setAttribute("onScrollMonitor",false);var needsScrolling=this.getAttribute(ig.grid.PROP_IG_NEEDS_SCROLLING);if(!ig.isNull(needsScrolling)&&parseInt(needsScrolling)<0)
return;var pageRowCount=parseInt(this.getAttribute(ig.grid.PARTITIONED_ROW_COUNT));var currentRowCount=parseInt(this.getAttribute(ig.grid.PROP_IG_CURRENT_ROW_COUNT));var rowFetchSize=parseInt(this.getAttribute(ig.grid.PROP_IG_ROW_FETCH_SIZE));if(currentRowCount==pageRowCount)
return;var startRowIndex=currentRowCount;var endRowIndex=0;if((pageRowCount-currentRowCount)<rowFetchSize)
endRowIndex=pageRowCount-1;else
endRowIndex=currentRowCount+rowFetchSize-1;var loadingDiv=document.getElementById(this.elm.id+"_loadingDiv");var loadingImage=loadingDiv.childNodes[0];loadingDiv.style.left=this.getBody().getSize().width/2-parseInt(loadingImage.width/2)+"px";loadingDiv.style.top=-this.getBody().getSize().height/2-parseInt(loadingImage.height/2)+"px";loadingDiv.style.visibility="visible";this.scrollTopState=bodyScrollDiv.elm.scrollTop;ig.smartSubmit(this.getId(),"scrollingLoadOnDemand","rowRange:"+startRowIndex+" "+endRowIndex+" "+this.scrollTopState,this.getId(),this.onLoadOnDemand);}}};IgGrid.prototype.onScrollEnd=function(){var grid=ig.grid.getGrid(this);var doFetch=false;if(!ig.isNull(grid)&&!ig.isNull(grid.getBody())){var currentScrollTop=grid.getBody().getScrollingDiv().elm.scrollTop;var previousScrollTop=this.getAttribute(ig.grid.PROP_PREVIOUS_SCROLL_TOP);if(!ig.isNull(previousScrollTop)&&!ig.isNull(currentScrollTop)&&currentScrollTop==previousScrollTop)
{doFetch=true;}
previousScrollTop=currentScrollTop;this.setAttribute(ig.grid.PROP_PREVIOUS_SCROLL_TOP,previousScrollTop);}
var virtualPageIndex=document.getElementById(this.elm.id+"_virtualPageIndex");if(!ig.isNull(virtualPageIndex))
virtualPageIndex.style.visibility="hidden";if(doFetch)
{var id=this.elm.id;id=id.replace(/:/,"_");clearInterval(ig.grid.instancesIds[id]);this.setAttribute("onScrollMonitor",false);var body=grid.getBody();if(!ig.isNull(body)){var bodyScrollDiv=body.getScrollingDiv();var oldVirtualPage=parseInt(grid.getAttribute(ig.grid.PROP_CURRENT_VIRTUAL_PAGE));var singleRowHeight=grid.getSingleRowHeight();var scrollTop=parseInt(bodyScrollDiv.elm.scrollTop);var realContentHeight=0;var lodMarkerHeight=parseInt(this.getAttribute(ig.grid.PROP_LOD_MARKER_HEIGHT));var fetchSize=parseInt(this.getAttribute(ig.grid.PROP_IG_ROW_FETCH_SIZE));var allHeight=fetchSize*singleRowHeight;var currentlyAt=scrollTop/singleRowHeight;grid.scrollTopState=bodyScrollDiv.elm.scrollTop;var currentVirtualPage=0;var remainderCount=null;if(grid.getAttribute(ig.grid.PROP_REMAINDER_COUNT)!=null)
remainderCount=parseInt(grid.getAttribute(ig.grid.PROP_REMAINDER_COUNT));currentVirtualPage=parseInt(currentlyAt/fetchSize);if(!ig.isNull(remainderCount)){if(parseInt((currentlyAt-remainderCount)/fetchSize)!=oldVirtualPage){currentVirtualPage=parseInt((currentlyAt-remainderCount)/fetchSize);}}
if(currentVirtualPage+1>grid.getAttribute(ig.grid.PROP_IG_VIRTUAL_PAGE_COUNT))
return;if((currentVirtualPage-oldVirtualPage==1||currentVirtualPage-oldVirtualPage==-1)&&oldVirtualPage!=null){currentVirtualPage=oldVirtualPage;}
currentVirtualPage=oldVirtualPage;var finishedDown=false;var finishedUp=false;if(ig.isNull(oldVirtualPage))
oldVirtualPage=0;if(scrollTop>lodMarkerHeight){var contentHeight=0;if(this.getBody().getScrollingDivContent().elm.childNodes.length==1)
contentHeight=this.getBody().getScrollingDivContent().elm.firstChild.offsetHeight;else
contentHeight=this.getBody().getScrollingDivContent().elm.childNodes[1].offsetHeight;var lodPlusBody=lodMarkerHeight+contentHeight;if(lodPlusBody-scrollTop<this.getBody().getSize().height/2&&lodPlusBody-scrollTop>0){currentVirtualPage=oldVirtualPage+1;var finishedDown=true;grid.scrollTopState=currentVirtualPage*fetchSize*singleRowHeight;}else if(scrollTop>lodPlusBody){currentVirtualPage=parseInt(currentlyAt/fetchSize);if(!ig.isNull(remainderCount)){if(parseInt((currentlyAt-remainderCount)/fetchSize)!=oldVirtualPage){currentVirtualPage=parseInt((currentlyAt-remainderCount)/fetchSize);}}}}
else if(!finishedDown&&lodMarkerHeight-scrollTop>this.getBody().getSize().height/2&&lodMarkerHeight-scrollTop<this.getBody().getSize().height&&scrollTop!=lodMarkerHeight){var bodyHeight=this.getBody().getSize().height;currentVirtualPage=oldVirtualPage-1;grid.scrollTopState=currentVirtualPage*fetchSize*singleRowHeight;finishedUp=true;}else if(scrollTop<lodMarkerHeight){currentVirtualPage=parseInt(currentlyAt/fetchSize);if(currentVirtualPage==oldVirtualPage&&lodMarkerHeight-scrollTop>this.getBody().getSize().height)
currentVirtualPage--;grid.scrollTopState=currentVirtualPage*fetchSize*singleRowHeight;}else if(scrollTop==0){currentVirtualPage=0;}
if(currentVirtualPage!=oldVirtualPage&&currentVirtualPage>=0)
{var loadingDiv=document.getElementById(this.elm.id+"_loadingDiv");loadingDiv.style.visibility="visible";var startRowIndex=parseInt(currentVirtualPage*fetchSize);var loadingImage=loadingDiv.childNodes[0];loadingDiv.style.left=this.getBody().getSize().width/2-parseInt(loadingImage.width/2)+"px";loadingDiv.style.top=-this.getBody().getSize().height/2-parseInt(loadingImage.height/2)+"px";var endRowIndex=startRowIndex+fetchSize-1;ig.smartSubmit(grid.getId(),"scrollingLoadOnDemand","rowRange:"+startRowIndex+" "+endRowIndex+" "+grid.scrollTopState+" "+currentVirtualPage,grid.getId(),null);grid.setAttribute(ig.grid.PROP_CURRENT_VIRTUAL_PAGE,""+currentVirtualPage);}}}};IgGrid.prototype.init=function(){var scrollTopState=this.getAttribute(ig.grid.PROP_IG_SCROLL_TOP_STATE);if(!ig.isNull(scrollTopState)&&scrollTopState>0){this.isScrollingGrid=true;}
this.initScrollingGrid();this._initializeObjects();if(!ig.isNull(scrollTopState)&&scrollTopState>0)
this.setScrollTop(scrollTopState);};IgGrid.prototype.initScrollingGrid=function(){if(this.needScrollingGrid()||this.isScrollingGrid){var fc=this.getFrozenColCount();var cc=this.getColCount();var fixedGrid=this.getGrid();var cws=ig.ui.getMaxColWidths(fixedGrid.elm);if(ig.isArray(cws)){var gcw=0;for(var i=0;i<cws.length;i++){gcw+=cws[i];}
var fixedGridSize=fixedGrid.getSize();var originalUserWidth=this.getStyleInline("width");var originalUserHeight=this.getStyleInline("height");var widthUsesPercentages=false;var heightUsesPercentages=false;if(originalUserWidth.indexOf("%",0)!=-1){widthUsesPercentages=true;}
if(originalUserHeight.indexOf("%",0)!=-1){heightUsesPercentages=true;}
var udw=ig.toFloat(this.getStyleInline("width"));var udh=ig.toFloat(this.getStyleInline("height"));var scrollableGrid=this.toScrollingGrid(fixedGrid.elm,cc,fc,cws,gcw);var parentNode=fixedGrid.elm.parentNode;var ns=fixedGrid.elm.nextSibling;parentNode.removeChild(fixedGrid.elm);parentNode.insertBefore(scrollableGrid.elm,ns);this.setColumnWidthsAsArray(cws);for(var c=0;c<cws.length;c++){var w=cws[c];var aCol=this.getColumn(c);aCol.setWidth(w);}
var gw=fixedGridSize.width;var gh=fixedGridSize.height;var needsMods=false;if(ig.isIE&&(this.getCompatMode()!=ig.ui.COMPAT_BACK)){var singleRowHeight=this.getSingleRowHeight();var scrollingRowsParent=this.getBody().getScrollingSection().elm.childNodes[0];var fixedColumnsCount=this.getFrozenColCount();var fixedRowsParent=null;var paddingTop=0;var paddingBottom=0;if(scrollingRowsParent.childNodes.length>0)

⌨️ 快捷键说明

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