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

📄 dhtmlxgridcell.js

📁 dhtmlxGrid 是跨浏览器的 JavaScript 表格控制组件(Grid Control)
💻 JS
📖 第 1 页 / 共 2 页
字号:
 var a_val="";
 if(_isFF)a_val=this.obj.firstChild.value;
 else a_val=this.obj.value;
 if(a_val==""){
 this.cell._clearCell=true;
}
 else this.cell._clearCell=false;
 this.setValue(a_val);
 
 document.body.removeChild(this.obj);

 return this.val!=this.getValue();
}
 this.getValue = function(){
 if(this.cell.firstChild){
 if(this.cell.firstChild.tagName=="TEXTAREA")
 return this.obj.firstChild.value;
 else
 if(this.cell.firstChild.tagName=="DIV")
 return this.obj.firstChild.firstChild.value;
}
 if((!_isIE)&&(!this.grid.multiLine))
 return this.cell.innerHTML;
 else
 return this.cell.innerHTML.replace(/<br[^>]*>/gi,"\n")._dhx_trim();
}
}
eXcell_txt.prototype = new eXcell;

eXcell_txt.prototype.setValue = function(val){
 if(!val || val.toString()._dhx_trim()==""){
 val="&nbsp;"
 this.cell._clearCell=true;
}
 if((!_isIE)&&(!this.grid.multiLine))
 this.setCValue(val,val);
 else
 this.setCValue(val.replace(/\n/g,"<br/>"),val);
}


 
function eXcell_co(cell){
 try{
 this.cell = cell;
 this.grid = this.cell.parentNode.grid;
 this.combo = this.grid.getCombo(this.cell._cellIndex);
 this.editable = true
}catch(er){}
 this.shiftNext=function(){

 var z=this.list.options[this.list.selectedIndex+1];
 if(z)z.selected=true;
 this.obj.value=this.list.value;

 return true;
}
 this.shiftPrev=function(){

 var z=this.list.options[this.list.selectedIndex-1];
 if(z)z.selected=true;

 this.obj.value=this.list.value;
 
 return true;
}

 this.edit = function(){
 this.val = this.getValue();
 this.text = this.cell.innerHTML._dhx_trim();
 var arPos = this.grid.getPosition(this.cell)

 this.obj = document.createElement("TEXTAREA");
 this.obj.className="dhx_combo_edit";
 this.obj.style.height=(this.cell.offsetHeight-4)+"px";

 this.obj.wrap = "soft";
 this.obj.style.textAlign = this.cell.align;
 this.obj.onclick = function(e){(e||event).cancelBubble = true}
 this.obj.value = this.text

 this.list = document.createElement("SELECT");
 this.list.editor_obj = this;
 this.list.className='dhx_combo_select';
 this.list.style.width=this.cell.offsetWidth+"px";
 this.list.style.left = arPos[0]+"px";
 this.list.style.top = arPos[1]+this.cell.offsetHeight+"px";
 this.list.onclick = function(e){
 var ev = e||window.event;
 var cell = ev.target||ev.srcElement
 
 if(cell.tagName=="OPTION")cell=cell.parentNode;
 cell.editor_obj.setValue(cell.value);
 cell.editor_obj.editable=false;
 cell.editor_obj.grid.editStop();
}
 var comboKeys = this.combo.getKeys();
 var fl=false
 var selOptId=0;
 for(var i=0;i<comboKeys.length;i++){
 var val = this.combo.get(comboKeys[i])
 this.list.options[this.list.options.length]=new Option(val,comboKeys[i]);
 if(comboKeys[i]==this.val){
 selOptId=this.list.options.length-1;
 fl=true;
}
}

 if(fl==false){
 this.list.options[this.list.options.length]=new Option(this.text,this.val===null?"":this.val);
 selOptId=this.list.options.length-1;
}
 document.body.appendChild(this.list)
 this.list.size="6";
 this.cstate=1;
 if(this.editable){
 this.cell.innerHTML = "";
}
 else{
 this.obj.style.width="1px";
 this.obj.style.height="1px";
}
 this.cell.appendChild(this.obj);
 this.list.options[selOptId].selected=true;
 this.obj.focus();
 this.obj.focus();
 if(!this.editable)
 this.obj.style.visibility="hidden";
}

 this.getValue = function(){
 return((this.cell.combo_value==window.undefined)?"":this.cell.combo_value);
}
 this.getText = function(){
 return this.cell.innerHTML;
}
 this.detach = function(){
 if(this.val!=this.getValue()){
 this.cell.wasChanged = true;
}

 if(this.list.parentNode!=null){
 if(this.editable)
 if(this.obj.value._dhx_trim()!=this.text){
 this.setValue(this.obj.value)
}else{
 this.setValue(this.val)
}
 else
 this.setValue(this.list.value)
}
 if(this.list.parentNode)
 this.list.parentNode.removeChild(this.list);
 if(this.obj.parentNode)
 this.obj.parentNode.removeChild(this.obj);

 return this.val!=this.getValue();
}
}
eXcell_co.prototype = new eXcell;
eXcell_co.prototype.setValue = function(val){
 if((val||"").toString()._dhx_trim()=="")
 val=null

 if(val!==null)
 this.setCValue(this.grid.getCombo(this.cell._cellIndex).get(val)|| val,val);
 else
 this.setCValue("&nbsp;",val);

 this.cell.combo_value = val;
}
 
function eXcell_coro(cell){
 this.base = eXcell_co;
 this.base(cell)
 this.editable = false;
}
eXcell_coro.prototype = new eXcell_co;

 
function eXcell_cp(cell){
 try{
 this.cell = cell;
 this.grid = this.cell.parentNode.grid;
}catch(er){}
 this.edit = function(){
 this.val = this.getValue()
 this.obj = document.createElement("SPAN");
 this.obj.style.border = "1px solid black";
 this.obj.style.position = "absolute";
 var arPos = this.grid.getPosition(this.cell);
 this.colorPanel(4,this.obj)
 document.body.appendChild(this.obj);
 this.obj.style.left = arPos[0]+"px";
 this.obj.style.top = arPos[1]+this.cell.offsetHeight+"px";
}
 this.toolDNum = function(value){
 if(value.length==1)
 value = '0'+value;
 return value;
}
 this.colorPanel = function(index,parent){
 var tbl = document.createElement("TABLE");
 parent.appendChild(tbl)
 tbl.cellSpacing = 0;
 tbl.editor_obj = this;
 tbl.style.cursor = "default";
 tbl.style.cursor = "table-layout:fixed";
 tbl.onclick = function(e){
 var ev = e||window.event
 var cell = ev.target||ev.srcElement;
 var ed = cell.parentNode.parentNode.parentNode.editor_obj
 ed.setValue(cell.style.backgroundColor)
 ed.grid.editStop();
}
 var cnt = 256/index;
 for(var j=0;j<=(256/cnt);j++){
 var r = tbl.insertRow(j);
 for(var i=0;i<=(256/cnt);i++){
 for(var n=0;n<=(256/cnt);n++){
 R = new Number(cnt*j)-(j==0?0:1)
 G = new Number(cnt*i)-(i==0?0:1)
 B = new Number(cnt*n)-(n==0?0:1)
 var rgb = this.toolDNum(R.toString(16))+""+this.toolDNum(G.toString(16))+""+this.toolDNum(B.toString(16));
 var c = r.insertCell(i);
 c.width = "10px";
 c.innerHTML = "&nbsp;";
 c.title = rgb.toUpperCase()
 c.style.backgroundColor = "#"+rgb
 if(this.val!=null && "#"+rgb.toUpperCase()==this.val.toUpperCase()){
 c.style.border = "2px solid white"
}
}
}
}
}
 this.getValue = function(){
 return this.cell.firstChild.style?this.cell.firstChild.style.backgroundColor:"";
}
 this.getRed = function(){
 return Number(parseInt(this.getValue().substr(1,2),16))
}
 this.getGreen = function(){
 return Number(parseInt(this.getValue().substr(3,2),16))
}
 this.getBlue = function(){
 return Number(parseInt(this.getValue().substr(5,2),16))
}
 this.detach = function(){
 if(this.obj.offsetParent!=null)
 document.body.removeChild(this.obj);
 
 return this.val!=this.getValue();
}
}
eXcell_cp.prototype = new eXcell;
eXcell_cp.prototype.setValue = function(val){
 this.setCValue("<div style='width:100%;height:"+(this.cell.offsetHeight-2)+";background-color:"+(val||"")+";border:0px;'>&nbsp;</div>",val);
}


 
 
function eXcell_img(cell){
 try{
 this.cell = cell;
 this.grid = this.cell.parentNode.grid;
}catch(er){}
 this.getValue = function(){
 if(this.cell.firstChild.tagName=="IMG")
 return this.cell.firstChild.src+(this.cell.titFl!=null?"^"+this.cell.tit:"");
 else if(this.cell.firstChild.tagName=="A"){
 var out = this.cell.firstChild.firstChild.src+(this.cell.titFl!=null?"^"+this.cell.tit:"");
 out+="^"+this.cell.lnk;
 if(this.cell.trg)
 out+="^"+this.cell.trg
 return out;
}
}
 this.getTitle = function(){
 return this.cell.tit
}
}
eXcell_img.prototype = new eXcell;
eXcell_img.prototype.setValue = function(val){
 var title = val;
 if(val.indexOf("^")!=-1){
 var ar = val.split("^");
 val = ar[0]
 title = ar[1];
 
 if(ar.length>2){
 this.cell.lnk = ar[2]
 if(ar[3])
 this.cell.trg = ar[3]
}
 this.cell.titFl = "1";
}
 this.setCValue("<img src='"+(val||"")._dhx_trim()+"' border='0'>",val);
 if(this.cell.lnk){
 this.cell.innerHTML = "<a href='"+this.cell.lnk+"' target='"+this.cell.trg+"'>"+this.cell.innerHTML+"</a>"
}
 this.cell.tit = title;
}

 
function eXcell_price(cell){
 this.base = eXcell_ed;
 this.base(cell)
 this.getValue = function(){
 if(this.cell.childNodes.length>1)
 return this.cell.childNodes[1].innerHTML.toString()._dhx_trim()
 else
 return "0";
}
}
eXcell_price.prototype = new eXcell_ed;
eXcell_price.prototype.setValue = function(val){
 if(isNaN(Number(val))){
 if(!(val||"")||(val||"")._dhx_trim()!="")
 val = 0;
 val = this.val || 0;
}
 if(val>0){
 var color = "green";
 this.setCValue("<span>$</span><span style='padding-right:2px;color:"+color+";'>"+val+"</span>",val);
}else{
 this.setCValue("<div align='center' style='color:red;'>&nbsp;</div>",0);
}

}

 
function eXcell_dyn(cell){
 this.base = eXcell_ed;
 this.base(cell)
 this.getValue = function(){
 return this.cell.firstChild.childNodes[1].innerHTML.toString()._dhx_trim()
}

}

eXcell_dyn.prototype = new eXcell_ed;
eXcell_dyn.prototype.setValue = function(val){
 if(!val || isNaN(Number(val))){
 val = 0;
}
 if(val>0){
 var color = "green";
 var img = "dyn_up.gif";
}else if(val==0){
 var color = "black";
 var img = "dyn_.gif";
}else{
 var color = "red";
 var img = "dyn_down.gif";
}
 this.setCValue("<div style='position:relative;padding-right:2px;width:100%;'><img src='"+this.grid.imgURL+""+img+"' height='15' style='position:absolute;top:0px;left:0px;'><span style='width:100%;color:"+color+";'>"+val+"</span></div>",val);
}


 
function eXcell_ro(cell){
 this.cell = cell;
 this.grid = this.cell.parentNode.grid;
 this.edit = function(){}
}
eXcell_ro.prototype = new eXcell;


 
function dhtmlXGridComboObject(){
 this.keys = new dhtmlxArray();
 this.values = new dhtmlxArray();
 
 this.put = function(key,value){
 for(var i=0;i<this.keys.length;i++){
 if(this.keys[i]==key){
 this.values[i]=value;
 return true;
}
}
 this.values[this.values.length] = value;
 this.keys[this.keys.length] = key;
}
 
 this.get = function(key){
 for(var i=0;i<this.keys.length;i++){
 if(this.keys[i]==key){
 return this.values[i];
}
}
 return null;
}
 
 this.clear = function(){
 
 this.keys = new dhtmlxArray();
 this.values = new dhtmlxArray();
}
 
 this.remove = function(key){
 for(var i=0;i<this.keys.length;i++){
 if(this.keys[i]==key){
 this.keys._dhx_removeAt(i);
 this.values._dhx_removeAt(i);
 return true;
}
}
}
 
 this.size = function(){
 var j=0;
 for(var i=0;i<this.keys.length;i++){
 if(this.keys[i]!=null)
 j++;
}
 return j;
}
 
 this.getKeys = function(){
 var keyAr = new Array(0);
 for(var i=0;i<this.keys.length;i++){
 if(this.keys[i]!=null)
 keyAr[keyAr.length] = this.keys[i];
}
 return keyAr;
}

 
 this.save = function(){
 this._save=new Array();
 for(var i=0;i<this.keys.length;i++)
 this._save[i]=[this.keys[i],this.values[i]];
}


 
 this.restore = function(){
 if(this._save){
 this.keys[i]=new Array();
 this.values[i]=new Array();
 for(var i=0;i<this._save.length;i++){
 this.keys[i]=this._save[i][0];
 this.values[i]=this._save[i][1];
}
}
}
 return this;
}
function Hashtable(){
 this.keys = new dhtmlxArray();
 this.values = new dhtmlxArray();
 return this;
}
Hashtable.prototype = new dhtmlXGridComboObject;

function eXcell_link(cell){
	this.cell = cell;
    this.grid = this.cell.parentNode.grid;
	this.edit = function(){}
	this.getValue = function(){
		if(this.cell.firstChild.getAttribute)
			return this.cell.firstChild.innerHTML+"^"+this.cell.firstChild.getAttribute("href")
		else
			return "";
	}
	this.setValue = function(val){
		var valsAr = val.split("^");
		if(valsAr.length==1)
			valsAr[1] = "";
		else{
			if(valsAr.length>1){
				valsAr[1] = "href='"+valsAr[1]+"'";
				if(valsAr.length==3)
					valsAr[1]+= " target='"+valsAr[2]+"'";
				else
					valsAr[1]+= " target='_blank'";
			}
		}
		
		this.setCValue("<a "+valsAr[1]+" onclick='(isIE()?event:arguments[0]).cancelBubble = true;'>"+valsAr[0]+"</a>",valsAr);
	}
}

eXcell_link.prototype = new eXcell;
eXcell_link.prototype.getTitle=function(){
    return this.cell.firstChild.getAttribute("href");
}



⌨️ 快捷键说明

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