📄 dhtmlxgridcell.js
字号:
this.obj.focus()
}
this.getValue = function(){
//this.grid.editStop();
if ((this.cell.firstChild)&&(this.cell.firstChild.tagName=="TEXTAREA"))
return this.cell.firstChild.value;
else
return this.grid._aplNFb(this.cell.innerHTML.toString()._dhx_trim(),this.cell._cellIndex);
}
this.detach = function(){
var tv=this.obj.value;
this.setValue(tv);
return this.val!=this.getValue();
}
}
eXcell_edn.prototype = new eXcell;
eXcell_edn.prototype.setValue = function(val){
if(!val || val.toString()._dhx_trim()=="")
val="0"
this.setCValue(this.grid._aplNF(val,this.cell._cellIndex));
}
//#}
//#}
//Checkbox
function eXcell_ch(cell){
try{
this.cell = cell;
this.grid = this.cell.parentNode.grid;
this.cell.obj = this;
}catch(er){}
this.disabledF=function(fl){
if ((fl==true)||(fl==1))
this.cell.innerHTML=this.cell.innerHTML.replace("item_chk0.","item_chk0_dis.").replace("item_chk1.","item_chk1_dis.");
else
this.cell.innerHTML=this.cell.innerHTML.replace("item_chk0_dis.","item_chk0.").replace("item_chk1_dis.","item_chk1.");
}
this.changeState = function(){
//nb:
if ((!this.grid.isEditable)||(this.cell.parentNode._locked)) return;
if(this.grid.onEditCell(0,this.cell.parentNode.idd,this.cell._cellIndex)!=false){
this.val = this.getValue()
if(this.val=="1")
this.setValue("0")
else
this.setValue("1")
//nb:
this.grid.onEditCell(1,this.cell.parentNode.idd,this.cell._cellIndex)
this.grid.onCheckbox(this.cell.parentNode.idd,this.cell._cellIndex,(this.val!='1'))
}else{//preserve editing (not tested thoroughly for this editor)
this.editor=null;
}
}
this.getValue = function(){
try{
return this.cell.chstate.toString();
}catch(er){
return null;
}
}
this.isCheckbox = function(){
return true;
}
this.isChecked = function(){
if(this.getValue()=="1")
return true;
else
return false;
}
this.setChecked = function(fl){
this.setValue(fl.toString())
}
this.detach = function(){
return this.val!=this.getValue();
}
}
eXcell_ch.prototype = new eXcell;
eXcell_ch.prototype.setValue = function(val){
this.cell.style.verticalAlign = "middle";//nb:to center checkbox in line
//val can be int
if (val){
val=val.toString()._dhx_trim();
if ((val=="false")||(val=="0")) val="";
}
if(val){
val = "1";
this.cell.chstate = "1";
}else{
val = "0";
this.cell.chstate = "0"
}
var obj = this;
this.setCValue("<img src='"+this.grid.imgURL+"item_chk"+val+".gif' onclick='this.parentNode.obj.changeState()'>",this.cell.chstate);
}
//Radiobutton
function eXcell_ra(cell){
this.base = eXcell_ch;
this.base(cell)
this.grid = cell.parentNode.grid;
this.disabledF=function(fl){
if ((fl==true)||(fl==1))
this.cell.innerHTML=this.cell.innerHTML.replace("radio_chk0.","radio_chk0_dis.").replace("radio_chk1.","radio_chk1_dis.");
else
this.cell.innerHTML=this.cell.innerHTML.replace("radio_chk0_dis.","radio_chk0.").replace("radio_chk1_dis.","radio_chk1.");
}
this.changeState = function(){
if ((!this.grid.isEditable)||(this.cell.parentNode._locked)) return;
if(this.grid.onEditCell(0,this.cell.parentNode.idd,this.cell._cellIndex)!=false){
this.val = this.getValue()
if(this.val=="1")
this.setValue("0")
else
this.setValue("1")
//nb:
this.grid.onEditCell(1,this.cell.parentNode.idd,this.cell._cellIndex)
if(typeof(this.grid.onCheckbox)=='function')
this.grid.onCheckbox(this.cell.parentNode.idd,this.cell._cellIndex,(this.val!='1'))
for(var i=0;i<this.grid.getRowsNum();i++){
if(this.grid.cells2(i,this.cell._cellIndex).isChecked() && this.grid.cells2(i,this.cell._cellIndex).cell!=this.cell)
{
this.grid.cells2(i,this.cell._cellIndex).setValue("0")
this.grid.onEditCell(1,this.grid.rowsCol[i].idd,this.cell._cellIndex);
}
}
}else{//preserve editing (not tested thoroughly for this editor)
this.editor=null;
}
}
}
eXcell_ra.prototype = new eXcell_ch;
eXcell_ra.prototype.setValue = function(val){
this.cell.style.verticalAlign = "middle";//nb:to center checkbox in line
if (val){
val=val.toString()._dhx_trim();
if ((val=="false")||(val=="0")) val="";
}
if(val){
val = "1";
this.cell.chstate = "1";
}else{
val = "0";
this.cell.chstate = "0"
}
var obj = this;
this.setCValue("<img src='"+this.grid.imgURL+"radio_chk"+val+".gif' onclick='this.parentNode.obj.changeState()'>",this.cell.chstate);
}
//Multiline popup text editor
function eXcell_txt(cell){
try{
this.cell = cell;
this.grid = this.cell.parentNode.grid;
}catch(er){}
this.edit = function(){
this.val = this.getValue()
this.obj = document.createElement("TEXTAREA");
this.obj.className="dhx_textarea";
this.obj.onclick = function(e){(e||event).cancelBubble = true}
var arPos = this.grid.getPosition(this.cell);//,this.grid.objBox
if (!this.cell._clearCell)
this.obj.value = this.cell.innerHTML.replace(/<br[^>]*>/gi,"\n");
this.obj.style.display = "";
this.obj.style.textAlign = this.cell.align;
if (_isFF){
var z_ff=document.createElement("DIV");
z_ff.appendChild(this.obj);
z_ff.style.overflow="auto";
z_ff.className="dhx_textarea";
this.obj.style.margin="0px 0px 0px 0px";
this.obj.style.border="0px";
this.obj=z_ff;
}
document.body.appendChild(this.obj);//nb:
this.obj.onkeydown=function(e){
var ev=(e||event);
if (ev.keyCode==9) {
globalActiveDHTMLGridObject.entBox.focus();
globalActiveDHTMLGridObject.doKey({keyCode:ev.keyCode,shiftKey:ev.shiftKey,srcElement:"0"});
return false;
}
}
this.obj.style.left = arPos[0]+"px";
this.obj.style.top = arPos[1]+this.cell.offsetHeight+"px";
if(this.cell.scrollWidth<200)
var pw=200;
else
var pw=this.cell.scrollWidth;
this.obj.style.width = pw+(_isFF?18:16)+"px"
if (_isFF){
this.obj.firstChild.style.width = parseInt(this.obj.style.width)+"px";
this.obj.firstChild.style.height = this.obj.offsetHeight-3+"px";
}
this.obj.focus();
if (_isFF) this.obj.firstChild.focus();
else this.obj.focus()
}
this.detach = function(){
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);
//isIE()?this.obj.removeNode(true):this.grid.objBox.removeChild(this.obj);
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();//innerText;
}
}
eXcell_txt.prototype = new eXcell;
eXcell_txt.prototype.setValue = function(val){
if(!val || val.toString()._dhx_trim()==""){
val=" "
this.cell._clearCell=true;
}
if ((!_isIE)&&(!this.grid.multiLine))
this.setCValue(val,val);
else
this.setCValue(val.replace(/\n/g,"<br/>"),val);
}
//Combobox
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.grid.objBox)
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";//arPos[0]
this.list.style.top = arPos[1]+this.cell.offsetHeight+"px";//arPos[1]+this.cell.offsetHeight;
this.list.onclick = function(e){
var ev = e||window.event;
var cell = ev.target||ev.srcElement
//tbl.editor_obj.val=cell.combo_val;
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){//if no such value in combo list
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)//nb:this.grid.objBox.appendChild(this.listBox);
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(" ",val);
this.cell.combo_value = val;
}
//Selectbox
function eXcell_coro(cell){
this.base = eXcell_co;
this.base(cell)
this.editable = false;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -