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

📄 treeview.js

📁 ajax 框价.是个好工具.javascript 矿家.可以用在任何平台.
💻 JS
📖 第 1 页 / 共 5 页
字号:
{if(!this.getCreated())
return;this._measure();var vm=this.getViewManager();var rtl=this.getRightToLeft();var fixedLeftWidth=vm.getShowRowHeaders()?vm.getRowHeadersWidth():0;var fixedTopHeight=vm.getShowHeaders()?vm.getHeadersHeight():0;var availWidth=this._gridBodyElement.clientWidth;var availHeight=this._gridBodyElement.clientHeight;var clientWidth=this._element.clientWidth;var scrollBarWidth=clientWidth-availWidth;if(this._useNativeScrollBars)
{this._gridBodyFillerElement.style.marginTop=fixedTopHeight+"px";this._gridBodyFillerElement.style.marginLeft=rtl?0:fixedLeftWidth+"px";this._gridBodyFillerElement.style.marginRight=rtl?fixedLeftWidth+"px":0;}
else {this._syncScrollBars();}
this._gridBodyContentElement.style.height=Math.max(0,availHeight-fixedTopHeight)+"px";this._gridBodyContentElement.style.top=fixedTopHeight+"px";this._gridFixedLeftElement.style.height=Math.max(0,availHeight-fixedTopHeight)+"px";this._gridFixedLeftElement.style.top=fixedTopHeight+"px";this._gridBodyContentElement.style.width=Math.max(0,availWidth-fixedLeftWidth)+"px";this._gridBodyContentElement.style.left=rtl?scrollBarWidth:fixedLeftWidth+"px";this._gridFixedTopElement.style.width=Math.max(0,availWidth-fixedLeftWidth)+"px";this._gridFixedTopElement.style.left=rtl?scrollBarWidth:fixedLeftWidth+"px";if(vm.getShowRowHeaders())
{this._gridFixedLeftElement.style.display="block";this._gridFixedCornerElement.style.display="block";this._gridFixedLeftElement.style.width=Math.min(availWidth,fixedLeftWidth)+"px";this._gridFixedCornerElement.style.width=Math.min(availWidth,fixedLeftWidth)+"px";this._gridFixedLeftElement.style.left=this._gridFixedCornerElement.style.left=rtl?clientWidth-fixedLeftWidth+"px":0;}
else {this._gridFixedLeftElement.style.display="none";this._gridFixedCornerElement.style.display="none";}
if(vm.getShowHeaders())
{this._gridFixedTopElement.style.display="block";this._gridFixedTopElement.style.height=Math.min(availHeight,fixedTopHeight)+"px";if(vm.getShowRowHeaders())
{this._gridFixedCornerElement.style.display="block";this._gridFixedCornerElement.style.height=Math.min(availHeight,fixedTopHeight)+"px";}}
else {this._gridFixedTopElement.style.display="none";this._gridFixedCornerElement.style.display="none";}
vm.setScrollLeft(this._getInternalScrollLeft());vm.setScrollTop(this._getInternalScrollTop());};_p.layoutAllChildren=function()
{BiComponent.prototype.layoutAllChildren.call(this);if(this.getCreated())
{if(!this._useNativeScrollBars)
{this._doCustomOverflow();}
this._clientSizeChanged=true;this._forceMeasure=true;this.updateContentSize();this.updateSize();this._updateGrid(true,true,true);this._clientSizeChanged=false;}};_p._doCustomOverflow=function()
{if(!this.getCreated())
{return;}
var vm=this.getViewManager();var dm=this.getDataModel();var contentWidth=vm.getShownColumnsWidth();var clientWidth=this._element.clientWidth;var availWidth=clientWidth;var contentHeight=dm?dm.getRowCount()*vm.getRowHeight():0;var clientHeight=this._element.clientHeight;var availHeight=clientHeight;var vpw=this._vScrollBar.getPreferredWidth();var hph=this._hScrollBar.getPreferredHeight();var rtl=this.getRightToLeft();if(vm.getShowRowHeaders())
{contentWidth+=vm.getRowHeadersWidth();}
if(vm.getShowHeaders())
{contentHeight+=vm.getHeadersHeight();}
var ox=this.getOverflowX();var oy=this.getOverflowY();var hVis,vVis;var oldVisV=this._vScrollBar.getVisible();var oldVisH=this._hScrollBar.getVisible();this._beginScrollBatch();if(ox=="hidden")
{hVis=false;}
else if(ox=="scroll")
{hVis=true;}
else {if(oldVisV)
{hVis=contentWidth>availWidth-vpw;}
else {hVis=contentWidth>availWidth;}}
if(hVis)
{availHeight-=hph;}
if(oy=="hidden")
{vVis=false;}
else if(oy=="scroll")
{vVis=true;}
else {vVis=contentHeight>availHeight;}
if(vVis)
{availWidth-=vpw;}
this._gridBodyElement.style.width=Math.max(0,availWidth)+"px";this._gridBodyElement.style.height=Math.max(0,availHeight)+"px";this._syncScrollBars();this._vScrollBar.setExtent(availHeight);this._hScrollBar.setExtent(availWidth);var rh=vm.getRowHeight();this._vScrollBar.setBlockIncrement(Math.floor(availHeight/rh)*rh);this._vScrollBar.setVisible(vVis);this._hScrollBar.setVisible(hVis);this._vScrollBar.setTop(0);this._vScrollBar.setLeft(rtl?0:clientWidth-vpw);this._vScrollBar.setHeight(clientHeight-(hVis?hph:0));this._hScrollBar.setLeft(vVis&&rtl?vpw:0);this._hScrollBar.setTop(clientHeight-hph);this._hScrollBar.setWidth(clientWidth-(vVis?vpw:0));if(vVis!=oldVisV||hVis!=oldVisH)
{this._doCustomOverflow();this.updateSize();}
this._endScrollBatch();};_p.getHtmlCode=function(nScrollLeft,nScrollTop,nWidth,nHeight)
{this._createUpdateCache();var uc=this._updateCache;var dm=this.getDataModel();var vm=this.getViewManager();var sm=this._selectionModel;if(!dm)
return"";var startRow=uc.startRow;var startCol=uc.startCol;var rowCount=uc.rowCount;var colCount=uc.colCount;var rowHeight=uc.rowHeight;var sum=0;var sb=[];var y=startRow;var yPos=0;var mx,xPos,w,wl;var ieNoBr=uc.ieNoBr;var ieNoBrClose=uc.ieNoBrClose;var indentProperty=uc.indentProperty;var indentWidth;var ieExtraPadding=uc.ieExtraPadding;var vx=uc.vx;if(vx<colCount)
{var colCacheVx={};var colCacheWidth={};var nextColCache={};var indentCol=vm.getIndentColumn();var sortCol=dm.getSortColumn();var cellPaddingX=vm.getCellPaddingX();var highlightSortCol=vm.getHighlightSortColumn();if(y<rowCount)
{mx=startCol;xPos=0;while(mx!=null&&xPos<nWidth)
{w=vm.getColumnWidth(mx);colCacheWidth[mx]=w;xPos+=w;colCacheVx[mx]=vm.getViewColumn(mx);mx=nextColCache[mx]=vm.getNextColumn(mx);}}
while(y<rowCount&&yPos<nHeight)
{mx=startCol;xPos=0;sb.push("<tr class=\"",(sm.getRowSelected(y)?" selected":""),(sm.getRowIsLead(y)?" lead":""),"\" style=\"height:",rowHeight,"px;",dm.getRowStyle(y),"\">");while(mx!=null&&xPos<nWidth)
{vx=colCacheVx[mx];if(vx==null||vx>=colCount)
break;w=colCacheWidth[mx];indentWidth=indentCol==mx?dm.getDepth(y)*19+ieExtraPadding:0;sb.push("<td style=\"width:",(w-cellPaddingX),"px;",(indentWidth?indentProperty+indentWidth+"px;":""),dm.getCellStyle(mx,y),"\" class=\"",(sm.getCellSelected(mx,y)?"selected":""),(sortCol==mx&&highlightSortCol?" sort-column":""),(sm.getCellIsLead(mx,y)?" lead":""),"\">",ieNoBr,this.getExpandIconHtml(mx,y),(dm.getHasIcon(mx,y)?"<img alt=\"\" src=\""+dm.getIcon(mx,y)+"\" style=\""+dm.getIconStyle(mx,y)+"\" class=\"icon\">":""),dm.getCellText(mx,y),ieNoBrClose,"</td>");if(this._getHasAttachedComponent(mx,y))
{var ac=this._getAttachedComponent(mx,y);this._attachedComponents[ac.toHashCode()]={col:mx,row:y,width:w,height:rowHeight,component:ac};}
xPos+=w;mx=nextColCache[mx];}
if(xPos<nWidth)
sb.push("<td class=\"horizontal-filler\" style=\"width:",(nWidth-xPos),"px;\">&nbsp;</td>");sb.push("</tr>");yPos+=rowHeight;y++;}
if(yPos<nHeight)
{mx=startCol;xPos=0;sb.push("<tr style=\"height:",(nHeight-yPos),"px;\" class=\"vertical-filler\">");while(mx!=null&&xPos<nWidth)
{w=colCacheWidth[mx];sb.push("<td style=\"width:",(w-cellPaddingX),"px;\"",(dm.getSortColumn()==mx&&highlightSortCol?" class=\"sort-column\"":""),">&nbsp;</td>");xPos+=w;mx=nextColCache[mx];}
sb.push("</tr>");}}
sb.push("</tbody></table>");return"<table cellspacing=\"0\" class=\"bi-tree-view-table\" style=\"width:"+xPos+"px\"><tbody class=\""+(vm.getShowGridLines()?"bi-show-grid-lines":"")+(this.getContainsFocus()?" focused":"")+"\">"+sb.join("");};_p._getRowHtml=function(sb,y)
{this._createUpdateCache();var uc=this._updateCache;var sm=this._selectionModel;var dm=this.getDataModel();var vm=this.getViewManager();var rowHeight=uc.rowHeight;var startCol=uc.startCol;var nWidth=uc.clientWidth;var rowCount=uc.rowCount;var colCount=uc.colCount;var ieExtraPadding=uc.ieExtraPadding;var indentProperty=uc.indentProperty;var ieNoBr=uc.ieNoBr;var ieNoBrClose=uc.ieNoBrClose;var mx=startCol;var xPos=0;var w,vx,wl,indentWidth;var colCacheVx={};var colCacheWidth={};var nextColCache={};var indentCol=vm.getIndentColumn();var sortCol=dm.getSortColumn();var cellPaddingX=vm.getCellPaddingX();var highlightSortCol=vm.getHighlightSortColumn();if(y<rowCount)
{mx=startCol;xPos=0;while(mx!=null&&xPos<nWidth)
{w=vm.getColumnWidth(mx);colCacheWidth[mx]=w;xPos+=w;colCacheVx[mx]=vm.getViewColumn(mx);mx=nextColCache[mx]=vm.getNextColumn(mx);}}
mx=startCol;xPos=0;sb.push("<tr class=\"",(sm.getRowSelected(y)?" selected":""),(sm.getRowIsLead(y)?" lead":""),"\" style=\"height:",rowHeight,"px;",dm.getRowStyle(y),"\">");while(mx!=null&&xPos<nWidth)
{vx=colCacheVx[mx];if(vx==null||vx>=colCount)
break;w=colCacheWidth[mx];indentWidth=indentCol==mx?dm.getDepth(y)*19+ieExtraPadding:0;sb.push("<td style=\"width:",(w-cellPaddingX),"px;",(indentWidth?indentProperty+indentWidth+"px;":""),dm.getCellStyle(mx,y),"\" class=\"",(sm.getCellSelected(mx,y)?"selected":""),(sortCol==mx&&highlightSortCol?" sort-column":""),(sm.getCellIsLead(mx,y)?" lead":""),"\">",ieNoBr,this.getExpandIconHtml(mx,y),(dm.getHasIcon(mx,y)?"<img alt=\"\" src=\""+dm.getIcon(mx,y)+"\" style=\""+dm.getIconStyle(mx,y)+"\" class=\"icon\">":""),dm.getCellText(mx,y),ieNoBrClose,"</td>");if(this._getHasAttachedComponent(mx,y))
{var ac=this._getAttachedComponent(mx,y);this._attachedComponents[ac.toHashCode()]={col:mx,row:y,width:w,height:rowHeight,component:ac};}
xPos+=w;mx=nextColCache[mx];}
if(xPos<nWidth)
sb.push("<td class=\"horizontal-filler\" style=\"width:",(nWidth-xPos),"px;\">&nbsp;</td>");sb.push("</tr>");return xPos;};_p.getHeaderHtmlCode=function(nScrollLeft,nWidth)
{var vm=this.getViewManager();if(!vm.getShowHeaders())
return"";this._createUpdateCache();var uc=this._updateCache;var dm=this.getDataModel();var sm=this._stateManager;var startCol=uc.startCol;var colCount=uc.colCount;var sb=[];var mx,xPos,w,vx;sb.push("<tr>");mx=startCol;xPos=0;var ieNoBr=uc.ieNoBr;var ieNoBrClose=uc.ieNoBrClose;while(dm!=null&&mx!=null&&xPos<nWidth)
{vx=vm.getViewColumn(mx);if(vx==null||vx>=colCount)
break;w=vm.getColumnWidth(mx);sb.push("<td style=\"width:",(w-vm.getHeaderCellPaddingX()),"px;",dm.getHeaderCellStyle(mx),"\""," class=\"grid-header",(sm.getHeaderActive(mx)&&dm.getCanSortColumn(mx)?" grid-header-active":""),"\">",ieNoBr,dm.getHeaderCellText(mx),(dm.getSortColumn()==mx?"<img alt=\"\" src=\""+(dm.getSortAscending()?vm.getAscendingIcon():vm.getDescendingIcon())+"\" class=\"bi-tree-view-sort-arrow\">":""),ieNoBrClose,"</td>");xPos+=w;mx=vm.getNextColumn(mx);}
if(xPos<nWidth)
{sb.push("<td class=\"filler grid-header\" style=\"width:",(nWidth-xPos),"px\">&nbsp;</td>");}
sb.push("</tr>");sb.push("</tbody></table>");return"<table cellspacing=\"0\" class=\"bi-tree-view-headers-table\" style=\"width:"+xPos+"px;height:"+vm.getHeadersHeight()+"px\"><tbody>"+sb.join("");};_p.getRowHeaderHtmlCode=function(nScrollTop,nHeight)
{this._createUpdateCache();var uc=this._updateCache;var dm=this.getDataModel();var vm=this.getViewManager();var sm=this._selectionModel;var startRow=uc.startRow;var rowCount=uc.rowCount;var rowHeight=uc.rowHeight;var sb=[];var y=startRow;var yPos=0;var ieNoBr=uc.ieNoBr;var ieNoBrClose=uc.ieNoBrClose;while(y<rowCount&&yPos<nHeight)
{this._getRowHeaderCellHtml(sb,y);yPos+=rowHeight;y++;}
if(yPos<nHeight)
{sb.push("<tr class=\"filler\" style=\"height:",(nHeight-yPos),"px\"><td class=\"grid-header\">&nbsp;</td></tr>");}
sb.push("</tbody></table>");return"<table cellspacing=\"0\" class=\"bi-tree-view-row-headers-table\" style=\"width:"+vm.getRowHeadersWidth()+"px\"><tbody>"+sb.join("");};_p._getRowHeaderCellHtml=function(sb,y)
{this._createUpdateCache();var uc=this._updateCache;var dm=this.getDataModel();sb.push("<tr"," style=\"",dm.getRowHeaderCellStyle(y),";height:",uc.rowHeight,"px;\">");sb.push("<td class=\"grid-header",(dm.getRowSelected(y)?" grid-header-selected":""),"\">",uc.ieNoBr,dm.getRowHeaderCellText(y),uc.ieNoBrClose,"</td>");sb.push("</tr>");};_p.getExpandIconHtml=function(x,y)
{var dm=this.getDataModel();var vm=this.getViewManager();if(vm.getIndentColumn()!=x||!vm.getShowExpandIcon(y))
return"";var srcId;if(!dm.getHasChildren(y))
srcId="blank-icon";else {if(dm.getExpanded(y))
srcId="minus-icon";else srcId="plus-icon";}
var src=application.getTheme().getAppearanceProperty("tree-view",srcId);return"<img alt=\"\" src=\""+src+"\" class=\"bi-tree-view-expand-icon\">";};_p._updateGrid=function(bForceContainer,bForceHeader,bForceRowHeader)
{if(!this.getCreated())
return;var vm=this.getViewManager();var gridBody=this._gridBodyElement;var container=this._gridBodyContentElement;var headers=this._gridFixedTopElement;var rowHeaders=this._gridFixedLeftElement;this._createUpdateCache();var uc=this._updateCache;var scrollLeft=uc.scrollLeft;var scrollTop=uc.scrollTop;var clientWidth=uc.clientWidth;var clientHeight=uc.clientHeight;var startRow=uc.startRow;var startCol=uc.startCol;if(startCol!=this._lastStartCol||startRow!=this._lastStartRow||bForceContainer)
{container.innerHTML=this.getHtmlCode(scrollLeft,scrollTop,clientWidth,clientHeight);}
if(vm.getShowHeaders()&&(startCol!=this._lastStartCol||bForceHeader))
headers.innerHTML=this.getHeaderHtmlCode(scrollLeft,clientWidth);if(vm.getShowRowHeaders()&&(startRow!=this._lastStartRow||bForceRowHeader))
rowHeaders.innerHTML=this.getRowHeaderHtmlCode(scrollTop,clientHeight);this._updateAttachedComponents();this._lastStartCol=startCol;this._lastStartRow=startRow;this._invalidRows={length:0};this._resetUpdateCache();};_p.getScrollTopExact=function()
{if(this._useNativeScrollBars)
{return this._gridBodyElement.scrollTop;}
else {return this._vScrollBar.getValue();}};_p.getScrollTop=function()
{var vm=this.getViewManager();if(this.getCreated()&&vm)
{return vm.getFirstVisibleRow()*vm.getRowHeight();}
return 0;};_p.getScrollLeftExact=function()
{if(this._useNativeScrollBars)
{return this._gridBodyElement.scrollLeft;}
else {return this._hScrollBar.getValue();}};_p.getScrollLeft=function()
{var vm=this.getViewManager();if(this.getCreated()&&vm)
{var startCol=vm.getFirstVisibleColumn();return vm.getColumnLeft(startCol);}
return 0;};_p.getScrollWidth=function()
{if(!this._created)
throw new Error("Visual property on non created component");if(this._useNativeScrollBars)
{return this._gridBodyElement.scrollWidth;}
else {var vm=this.getViewManager();var cw=this._gridBodyContentElement.offsetWidth;return Math.max(vm.getShownColumnsWidth(),cw)+(vm.getShowRowHeaders()?vm.getRowHeadersWidth():0);}};_p.getScrollHeight=function()
{if(!this._created)
throw new Error("Visual property on non created component");if(this._useNativeScrollBars)
{return this._gridBodyElement.scrollHeight;}
else {var vm=this.getViewManager();var dm=this.getDataModel();var ch=0;var rc=dm?dm.getRowCount():0;var sh=rc*vm.getRowHeight();return Math.max(sh,ch)+(vm.getShowHeaders()?vm.getHeadersHeight():0);}};_p._create=function(oDoc)
{BiComponent.prototype._create.call(this,oDoc);this._gridBodyElement=this._document.createElement("DIV");this._gridBodyElement.className="bi-tree-view-body";this._gridBodyElement.onscroll=BiTreeViewBase.__onBiTreeViewBaseScroll;this._element.appendChild(this._gridBodyElement);if(this._useNativeScrollBars)
{this._addNativeScrollBars();}
this._gridBodyContentElement=this._document.createElement("DIV");this._gridBodyContentElement.className="bi-tree-view-body-content";this._element.appendChild(this._gridBodyContentElement);this._gridFixedTopElement=this._document.createElement("DIV");this._gridFixedTopElement.className="bi-tree-view-headers";this._element.appendChild(this._gridFixedTopElement);this._gridFixedLeftElement=this._document.createElement("DIV");this._gridFixedLeftElement.className="bi-tree-view-row-headers";this._element.appendChild(this._gridFixedLeftElement);this._gridFixedCornerElement=this._document.createElement("DIV");this._gridFixedCornerElement.className="bi-tree-view-header-corner grid-header";this._element.appendChild(this._gridFixedCornerElement);this._updateOverflow();this._updateCanSelect();};_p._addNativeScrollBars=function(){BiTreeViewBase.prototype._addNativeScrollBars.call(this);this._gridBodyFillerElement.className="bi-tree-view-body-filler";};_p._updateRowSelected=function(y)
{var dm=this.getDataModel();var vm=this.getViewManager();if(this._contentSizeDirty||!this.getCreated()||!dm)
return;this._createUpdateCache();var uc=this._updateCache;var container=this._gridBodyContentElement;var rowHeaders=this._gridFixedLeftElement;var startRow=uc.startRow;if(startRow>y)
return;var shownRows=uc.shownRows;if(startRow+shownRows<y)
return;var bSelected=dm.getRowSelected(y);var bLead=dm.getRowIsLead(y);var tr=container.firstChild.tBodies[0].rows[y-startRow];var style;if(tr)
{tr.className=(bSelected?"selected":"")+(bLead?" lead":"");style=dm.getRowStyle(y);if(style!="")
{tr.style.cssText=style;tr.style.height=vm.getRowHeight()+"px";}
if(BiBrowserCheck.ie)
{var imgs=tr.getElementsByTagName("IMG");var l=imgs.length;for(var i=0;i<l;i++)
{if(imgs[i].className=="icon")
imgs[i].style.position="relative";}}}
if(vm.getShowRowHeaders())
{tr=rowHeaders.firstChild.tBodies[0].rows[y-startRow]
if(tr)
{var td=tr.cells[0];if(td)
td.className="grid-header"+(bSelected?" grid-header-selected":"");style=dm.getRowHeaderCellStyle(y);if(style!="")

⌨️ 快捷键说明

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