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

📄 dbgrid.htc

📁 HTC,demo WEB用于。 超大型
💻 HTC
📖 第 1 页 / 共 5 页
字号:
        oCopyDataXML = null;
        oPreviousRowXMLData = null;
        oTitleXML = null;
        oControl = null;

        oTitle = null;
        oTitleTable = null;
        oTitleTR = null;
        oTitleTD = null;
        oTitleInnerDiv = null;
        

        oTBody = null;//内容所在容器对象
        oDataTable = null;//oTBody容器对象
        oTBodyTable = null;//内容table对象
        oTBodyTR = null;
        oTBodyTD = null;
        oFirstLineDiv = null;
        vTableCol = -1;
        vTableRow = -1;//存储当前操作的cell
        vPreviousCol = -1;
        vPreviousRowForXML = -1;//存储上次操作的cell位置
        vPreviousRow = -1;
        vSelectionMode = "row";//选中方式(默认为单元格选中)
        vPKColName = "";

        allowResizeModle = true;//是否可以调整列宽

        vMouseStart =  0; 

        bIsSelected = false;//单元格是否被选中        
        oSortBtn = null;//排序按钮

        curScrollLeftStatus = 0;
        curScrollTopStatus = 0;

        oEditor = null;//当前输入框
        oCurCell = null;//当前Cell
        curContent = null;//当前cell中的内容

        curPage = 1;//当前页
        oPageSize = 20;//每页显示的记录数,默认为20条
        
        arrCheckedRow = null;
        arrCheckedRow = new Array();
        
        ///////////////////////////////////////////////////////////
        
        while(element.all.length > 0){                  
          objLeafElement = element.all(element.all.length - 1);
          while(objLeafElement.childNodes.length > 0){
            objLeafElement = objLeafElement.childNodes(0);
          }//End of while
          if(objLeafElement.parentElement)
            objLeafElement.parentElement.removeChild(objLeafElement);
          if(objLeafElement.parentNode)
            objLeafElement.parentNode.removeChild(objLeafElement);  
          objLeafElement = null;                   
        }//End of for        
      }//End of clear
            
      function lostFocus(){//焦点消失/    
        window.document.attachEvent("onmousedown",clickDocument);    
      }

      function clickDocument(){
    
        if(oEditor==null) return;
        
        if(funVerifyInputWhenBlur() == -1){            
          return(-1);
        }
        
        var objSrc = window.event.srcElement;
        if(element.contains(objSrc)) return;
      
          window.document.detachEvent("onmousedown",clickDocument);
          oEditor.style.display = "none";
          oTBodyTable.rows(vPreviousRow).cells(vPreviousCol).style.color = "#000000"; 
        }   

      function keydownTBodyTable(){//移动光标键进行cell或tr之间的移动
        //
        var vKeyCode = window.event.keyCode;

        if(vKeyCode > 40 || vKeyCode < 37) return;
        if(vTableRow < 0 || vTableCol < 0) return; 
        switch(vKeyCode){
          case 37:  //左
            if(vSelectionMode != "row") selectTable(false);
            if(vTableCol ==  0) tableCol = oTBodyTable.rows(0).cells.length - 1; //到达表格左端则返回右端
            else vTableCol--;
            if(vSelectionMode != "row") selectTable(true); 
            scrollRowToView(vTableRow,vTableCol);//移动当前行到可视范围
            showRC();
            evtClickCell.fire();
            break;
          case 38:  //上
            selectTable(false); 
            if(vTableRow ==  0) tableRow = oTBodyTable.rows.length - 1; //到达顶端返回底端
            else vTableRow--;
            selectTable(true); 
            scrollRowToView(vTableRow); 
            showRC();
            evtClickCell.fire();
            break;
          case 39:  //右
            if(vSelectionMode != "row") selectTable(false); 
            if(vTableCol == oTBodyTable.rows(0).cells.length - 1) vTableCol = 0; 
            else vTableCol++;
            if(vSelectionMode != "row") selectTable(true); 
            scrollRowToView(vTableRow,vTableCol);
            showRC();
            evtClickCell.fire();
            break;
          case 40:  //下
            selectTable(false); 
            if(vTableRow ==  oTBodyTable.rows.length - 1) tableRow = 0; //到达底端返回顶端
            else vTableRow++;
            selectTable(true); 
            scrollRowToView(vTableRow); 
            showRC();
            evtClickCell.fire();
            break;
        }
        window.event.returnValue = false;
      }


      function scrollRowToView(argRow,argCol){ 
        var objRow,objCell;
        var vTemp;

        if(typeof(argRow) == "undefined") return; //至少需要argRow参数

        objRow = oTBodyTable.rows(argRow); //要移动的row
        if(objRow==null) return;
        vTemp = objRow.offsetTop - oTBody.scrollTop; 

        if(vTemp < 0){ 
          oTBody.scrollTop += vTemp;
        }else{
          vTemp = objRow.offsetTop + objRow.offsetHeight - (oTBody.scrollTop + oTBody.offsetHeight); 
          if(vTemp > 0){ 
            oTBody.scrollTop += vTemp + 16;
          }
        }

        if(typeof(argCol) == "undefined") return; 
        objCell = oTBodyTable.rows(argRow).cells(argCol); 
        if(objCell==null) return;
        vTemp = objCell.offsetLeft - oTBody.scrollLeft; 
        if(vTemp < 0){ 
            if(argCol == 0) oTBody.scrollLeft = 0;
            else oTBody.scrollLeft += vTemp;
        }else{
            vTemp = objCell.offsetLeft + objCell.offsetWidth - (oTBody.scrollLeft + oTBody.offsetWidth); 
            if(vTemp > 0){ 
              oTBody.scrollLeft += vTemp + 16;
            }
        }
      }   

        function initialize(){ 
          initGlobalCommon();
          vTableCol = -1;
          vTableRow = -1;
          
          if(!oTitleXML) return(-1);
  
          getCopyDataXML();

          createTitle(); 
          
          oDataTable = element.document.createElement("<div/>");
          oDataTable.oncontextmenu = function(){event.returnValue = false;};
          oDataTable = element.appendChild(oDataTable); 
          
          fillInTable(); //用XML数据填充表并显示        			
          if(hasController=="true" && oControl==null){
			viewController();  					
          }
          
          refresh();
          
          if(oTitle && oTBody){
            oSortBtn = element.document.createElement("<span class='phms_sortBtnSpan'></span>");
            oSortBtn.innerHTML = "<v:polyline points='0,6 4,0 8,6 0,6' class='phms_sortBtn' fillcolor='black' strokcolor='red'/><?xml:namespace prefix='v' urn='schemas-microsoft-com:vml'/>";
          }
          element.runtimeStyle.visibility = "visible";
          createEditor(); 
          if(oDataXML!=null) objDeletedXMLFragement = inputXML();
        }     

        
        function initGlobalCommon(){
          if(!element.document.parentWindow.__objGlobalCommonInst){//如果还没有初始化
            var oWindow;
            oWindow = element.document.parentWindow;
            oWindow.__objGlobalCommonInst = oWindow.parent.__objGlobalCommonInst;
            __objGlobalCommonInst = oWindow.__objGlobalCommonInst;                  
          }                
		  return __objGlobalCommonInst ? true : false;
        }

        function getCellText(argRow,argCol){ 
          var vRow = parseInt(argRow);
          var vCol = parseInt(argCol); 
          if(vRow > oTBodyTable.rows.length - 1 || vRow < 0) return null;
          if(vCol > oTBodyTable.rows(0).cells.length - 1 || vCol < 0) return null;
          
          return oTBodyTable.rows(vRow).cells(vCol).innerText;
        }
        
        
        function strSplit(aimStr){
          var s;
          var tmpStr = "sum(//r/";
          
          s = aimStr.split("+");
          for(var i=0; i<s.length; i++){
            if(i!= s.length -1){
              tmpStr += s[i] + ") + sum(//r/";
            }else{
              tmpStr += s[i] + ")";
            }              
          }          
          return tmpStr;
        }

        function viewPageFooter(){//页脚控制器
          var objDivFPC;
          var objCellFPC;
          var intResult;
          
          if(!oTBodyTable.rows(0)) return(-1);

          oDivPageFooter = element.document.createElement("<div/>");
          if(!oTBody) return(-1);
          oDivPageFooter = oTBody.insertAdjacentElement("beforeEnd", oDivPageFooter);
          
          oTabPageFooter = element.document.createElement("<table cellspacing='1' cellpadding='0' border='0' class='phms_grid_oTBodyTable'></table>");
          oTabPageFooter.insertRow();     
               
          for(var i = 0; i < oTBodyTable.rows(0).cells.length; i++){
            objDivFPC = element.document.createElement("<div class='phms_grid_oFirstLineDiv'></div>");              
            
            objCellFPC = oTabPageFooter.rows(0).insertCell();            
            objCellFPC.align = "center";            
            objDivFPC = objCellFPC.insertAdjacentElement("beforeEnd", objDivFPC);            
            objDivFPC.style.background = "#dddddd";
            objDivFPC.style.pixelWidth = oTabPageFooter.rows(0).cells(i).childNodes(0).offsetWidth;
            objDivFPC.style.pixelHeight = oTabPageFooter.rows(0).cells(i).childNodes(0).offsetHeight;
            
            if(oTitleTable.rows(0).cells(i).childNodes(0).calculateCol){                
                intResult = __objGlobalCommonInst.transformXML(oCopyDataXML, '<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:fo=\"http://www.w3.org/1999/XSL/Format\"><xsl:variable name=\"vSum\" select=\"' + strSplit(oTitleTable.rows(0).cells(i).childNodes(0).calculateCol) + '\"/><xsl:template match=\"/\"><xsl:value-of select=\"$vSum\"/></xsl:template></xsl:stylesheet>').replace('<?xml version=\"1.0\" encoding=\"UTF-16\"?>', "");
            }else{                
                intResult = __objGlobalCommonInst.transformXML(oCopyDataXML, '<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\" xmlns:fo=\"http://www.w3.org/1999/XSL/Format\"><xsl:variable name=\"vSum\" select=\"sum(//r/@' + oTitleTable.rows(0).cells(i).childNodes(0).rpropname + ')\"/><xsl:template match=\"/\"><xsl:value-of select=\"$vSum\"/></xsl:template></xsl:stylesheet>').replace('<?xml version=\"1.0\" encoding=\"UTF-16\"?>', "");
            }
            
            if(intResult == "NaN"){//无法进行统计的列
              objDivFPC.innerText = "";
            }else{
              objDivFPC.innerText = intResult;
            }
            
            with(objDivFPC){
              if(i==0 && hasFixedCol=="1"){//显示索引列并且是第一行
                style.width = oTBodyTable.rows(0).cells(i).offsetWidth;                 
                innerText = "合计";
              }else{
                style.width = oTBodyTable.rows(0).cells(i).offsetWidth;                 
              }                     
            }
          }          
          oTabPageFooter = oDivPageFooter.insertAdjacentElement("beforeEnd", oTabPageFooter);         
        
        }
        
        ///////////////////////////////////////////////////////////////////////////////////////////        
        //////////////////以下是分页控制器代码///////////////
        ///////

⌨️ 快捷键说明

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