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

📄 xtdbgrid.htc

📁 HTC,demo WEB用于。 超大型
💻 HTC
📖 第 1 页 / 共 5 页
字号:
      <!--///////////////////////////////////////////////////////////////////////
      // 标题:DBGrid组件 ///////////////////////////////////////////////////
      // 时间:2004-01-10 ///////////////////////////////////////////////////
      ///////////////////////////////////////////////////////////////////////-->
      <public:component name="DBGrid" urn="DBGrid" lightweight=true>
      
      <public:property name="titleXML" get="getTitleXML" put="putTitleXML"/>//DBGrid标题数据源
      <public:property name="dataXML" get="getDataXML" put="putDataXML"/>//DBGrid数据源

      //grid组件整体位置、样式    
      <public:property name="top" value="10" put="putTop"/>
      <public:property name="left" value="10" put="putLeft"/>
      <public:property name="width" value="200" put="putWidth"/>
      <public:property name="height" value="250" put="putHeight"/>
      <public:property name="borderColor" value="#A6C4E1"/> 

      //标题行样式/
      <public:property name="hasTitle" value="true"/> // 是否有表头
      <public:property name="titleBgColor" value="#CAEAFF"/>
      <public:property name="titleForeColor" value="#000000"/>

      //数据表样式
      <public:property name="dataBgColor" value="#DDDDDD"/>//数据表背景色
      <public:property name="oddTRColor" value="#F3F8FC"/> //数据表奇数行背景色
      <public:property name="evenTRColor" value="#E9F0F8"/> //数据表偶数行背景色
      <public:property name="selectionMode" value="cell" put="putSelectionMode"/>
      <public:property name="tableRow" get="getTableRow" put="putTableRow"/>//当前行
      <public:property name="tableCol" get="getTableCol" put="putTableCol"/>//当前列
      <public:property name="selectBgColor" value="#000000"/> //选择的cell或行的背景色
      <public:property name="selectForeColor" value="#ffffff"/> //选择的cell或行的前景色
      <public:property name="rows" get="getRows"/>//总行数
      <public:property name="cols" get="getCols"/>//总列数          
      <public:property name="PKColName" put="putPKColName"/>//每行的唯一标识列的列名
      
      //索引列样式      
      <public:property name="hasFixedCol" value="1"/>//是否有索引列:0:无 1:有
      <public:property name="fixedColForeColor" value="#000000"/>//索引列cell前景色
      <public:property name="fixedColBGColor" value="#CAEAFF"/>//索引列cell背景色
      <public:property name="fixedColAlign" value="center"/>//索引列cell对齐方式
      <public:property name="editMode" value="true"/>//是否可以编辑
      
      //是否有控制面板
      <public:property name="hasController" value="true"/>//是否有控制面板
      <public:property name="controllerBgColor" value="#CAEAFF"/>//控制器背景色
      <public:property name="pageSize" put="putPageSize"/>//一页记录数
      
      <public:property name="hasAddButton" value="false"/>//是否有增加行按钮
      <public:property name="hasDelButton" value="false"/>//是否有删除行按钮 
      <public:property name="hasPrintButton" value="true"/>//是否有打印按钮 
      
      //是否显示用于统计的页脚行
      <public:property name="hasPageFooter" value="false"/>//是否含有页脚行

      //checkBox列和radio列
      <public:property name="hasCheckBox" value="false"/>//checkBox列
      <public:property name="hasRadio" value="false"/>//radio列
     	<public:property name="readOnly" put="putReadOnly" get="getReadOnly"/>//readOnly属性

      <public:property name="init" put="initialize"/>//组件初始化

      <public:event name="onDrag" id="evtOnDrag"/>
      <public:event name="onClickCell" id="evtClickCell"/> 
      <public:event name="onChange" id="evtonChange"/>
      <public:event name="onModify" id="evtonModify"/>

      <public:method name="getCellText"/> //获得指定cell的内容
      <public:method name="getSelectedXMLRow"/> //返回当前
      <public:method name="getSelectedOrderXMLRow"/>
      
      <public:method name="getValueByRPropName"/>//根据RPropName来获得指定行的列值
      <public:method name="delRow"/> //删除选定的行
      <public:method name="delCheckRow"/> //删除通过checkBox选中的行
      <public:method name="addRow"/>//添加新行  
      <public:method name="PrintOut"/>//打印
        
      <public:method name="getXMLDocCopy"/>//返回当前正在编辑的xml的拷贝  原saveXML
      <public:method name="getXMLFrgWithRoot"/>//返回一般需要使用的xml结果对象  原saveXML2
      <public:method name="getXMLStringNoRoot"/>//返回一般需要使用的xml结果对象,无root节点  原saveXML3

      <public:attach event="onclick" for="element" onevent="hideInput()"/>

      <script language="JavaScript">
      
      <!--

        var oDataXML = null;//Table数据的XML对象
        var objDeletedXMLFragement = null;//用来保存已经删除了的行      
        var oCopyDataXML = null;//Table数据的XML对象的拷贝
        var oPreviousRowXMLData = null;//双击时用来保存当前行XML数据对象
        var oTitleXML = null;//Title数据的XML对象
        var oControl = null;//控制面板容器对象    
        var oDivPageFooter = null; 
        var oTabPageFooter = null; 

        var oTitle = null;//标题对象
        var oTitleTable = null;//标题table对象
        var oTitleTR = null;//标题行tr对象
        var oTitleTD = null;//标题cell对象
        var oTitleInnerDiv = null;//标题行 cell 中的 div 对象,用来撑开td
        var objTA,objDT,objSEC,objCombo,objActiveEditor,objMaskEdit,objDatePicker,objQInput; //编辑组件以及记录当前活动的Editor

        var oTBody = null;//内容所在容器对象
        var oDataTable = null;//oTBody容器对象
        var oTBodyTable = null;//内容table对象
        var oTBodyTR = null;//内容tr对象
        var oTBodyTD = null;//内容cell对象
        var oFirstLineDiv = null;//第一行cell中的div对象,用来控制整个内容表的列宽
        var vTableCol,vTableRow;//存储当前操作的cell
        var vPreviousCol,vPreviousRow,vPreviousRowForXML;//存储上次操作的cell位置
        var vSelectionMode = "row";//选中方式(默认为单元格选中)
        var vPKColName = "";//用来唯一标识每一行的XML属性名

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

        var vMouseStart,objSplitBar; //鼠标初始位置,当前活动splitbar

        var bIsSelected = false;//单元格是否被选中
        var objScrollTrack; //记录鼠标跟随选择的TD对象
        var oSortBtn = null;//排序按钮

        var curScrollLeftStatus = 0;//水平滚动条当前的scrollLeft
        var curScrollTopStatus = 0;//垂直滚动条当前的scrollTop

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

        var curPage = 1;//当前页
        var oPageSize = 20;//每页显示的记录数,默认为20条
        
        var arrCheckedRow = new Array();//用来保存用户通过checkBox选择行的__rowid
        var intRows = 0;
        
        var addFlag = false;
        var vReadOnly = false;

        var vTop = 10;
        var vLeft = 10;
        var vWidth = 200;
        var vHeight = 250;
        var boolInEditing = false;
        
        var oraclDateValue = "";
      
        function putSelectionMode(arg){
          this.vSelectionMode = arg;
        }

        function putPageSize(arg){
            oPageSize = arg;
        }
        
        function putPKColName(argPKColName){
          this.vPKColName = argPKColName;
        }
        
        function getDataXML(){//设置Data的DOMDocument object
            return oDataXML;
        }

        function putDataXML(argXML){

          var objXML;
          var objNode;
          initGlobalCommon();

          objXML=inputXML(argXML);
          if(objXML){             
            while(oDataXML && oDataXML.childNodes(0)){//释放资源
              objNode = oDataXML.removeChild(oDataXML.childNodes(0));
              objNode = null;
            }
            oDataXML = null;
            delete oDataXML;

            oDataXML = objXML;
            if(oDataXML!=null) objDeletedXMLFragement = inputXML();

            getCopyDataXML();
            
            getRows();

            if(oDataTable){//...
              fillInTable();
              updateData();         
            }           
          }else{ 
            oDataXML = null;
          }          
        }

        function getTableRow(){
          return vTableRow;
        }

        function putTableRow(argRow){
          vTableRow = parseInt(argRow);
        }

        function getTableCol(){
          return vTableCol;
        }

        function putTableCol(argCol){ 
          vTableCol = parseInt(argCol);
        }
        
        function getTitleXML(){//设置标题的DOMDocument object
          return oTitleXML;
        }

        function putTitleXML(argXML){
          //alert("title");
          initGlobalCommon();
          clear();          
          var oTitleFragement = inputXML(argXML);
          if(oTitleFragement) 
            oTitleXML = oTitleFragement;
          else 
            oTitleXML = null;
        }   

        function inputXML(argSource){ //生成XML DOM对象
          
          if(!__objGlobalCommonInst) initGlobalCommon();
          if(typeof(argSource) == "string"){//处理XML数据岛
            if((!(argSource.search(/\./) != -1 && argSource.search(/\</) == -1)) &&  (!(argSource.search(/\</) != -1))){
              try{                                                                                                                
                      argSource = eval(window.document.all(argSource));
              }catch(e){
              }
            }
          }
          if(!__objGlobalCommonInst){
		    window.__objGlobalCommonInst = window.dialogArguments.__objGlobalCommonInst;
          }
          return __objGlobalCommonInst.inputXML(argSource);
        }
        
        
        function createSplitBar(argParent){ //创建用来调整列宽的Span
          objSplitBar = element.document.createElement("<span class='phms_grid_split'></span>");
          objSplitBar.innerText = " ";
          with(objSplitBar){
            onmousedown = splitStart; //起始
            onmouseup = splitEnd; //结束
          }
          argParent.appendChild(objSplitBar);
        }

        function splitStart(){ // 拖动表头开始

          window.event.cancelBubble = true; 
          if(oEditor && oEditor.style.display != "none") return;
          if (allowResizeModle.toString() ==  "false") return ;
        
          vMouseStart  =  window.event.clientX;
          objSplitBar  =  window.event.srcElement; // 准备活动的 splitbar   
          
          var oSplitLine = element.document.createElement("<span class='phms_grid_splitLine'></span>");//用来调整表头的span
          oSplitLine = objSplitBar.appendChild(oSplitLine);
          oSplitLine.style.pixelHeight = vHeight;

          objSplitBar.setCapture(true); //开始鼠标捕获
          objSplitBar.attachEvent("onmousemove",split); // 绑定 mousemove 事件
        }

        function split(){ //在 split bar' onmousemove 过程中执行
          objSplitBar.children(0).style.left  =  window.event.clientX - vMouseStart + 4; // split line 的移动
        }

⌨️ 快捷键说明

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