📄 ig_webgrid_ml.js
字号:
var eCombo = this.webCombo.Element
var cell=igtbl_getElementById(eCombo.getAttribute("currentCell"));
if(!cell)
return;
var gn = this.Id;
var gs=igtbl_getGridById(gn);
var oldText=igtbl_getInnerText(cell);
var hasHref=false;
if(cell.childNodes && cell.childNodes.length>0 && cell.childNodes[0].tagName=="A")
{
hasHref=true;
oldText=igtbl_getInnerText(cell.childNodes[0]);
}
if(!cell.getAttribute("oldValue"))
cell.setAttribute("oldValue",oldText);
var changed=false;
var column=igtbl_getColumnById(cell.id);
var cellObj=igtbl_getCellById(cell.id);
var displayValue=this.webCombo.getDisplayValue();
this.webCombo.setDropDown(false);
if(!this.webCombo.Prompt || this.webCombo.getSelectedIndex()>0)
{
if(hasHref)
changed=(igtbl_getInnerText(cell.childNodes[0])!=displayValue);
else
changed=(igtbl_getInnerText(cell)!=displayValue);
}
if(changed && !gs.insideBeforeUpdate)
{
gs.insideBeforeUpdate=true;
var value=igtbl_fireEvent(gn,gs.Events.BeforeCellUpdate,"(\""+gn+"\",\""+cell.id+"\",\""+value+"\")");
gs.insideBeforeUpdate=false;
if(value==true)
changed=false;
}
if(changed)
{
if(!displayValue)
displayValue=this.webCombo.getDisplayValue();
if(displayValue=="")
displayValue=" ";
if(hasHref)
{
igtbl_setInnerText(cell.childNodes[0],displayValue);
cell.childNodes[0].href=(value.indexOf('@')>=0?"mailto:":"")+cell.childNodes[0].innerText;
}
else if(cell.childNodes.length>0 && cell.childNodes[0].tagName=="NOBR")
igtbl_setInnerText(cell.childNodes[0],displayValue);
else
igtbl_setInnerText(cell.childNodes[0],displayValue);
if(displayValue==" ")
displayValue="";
if(displayValue!=eCombo.getAttribute("oldInnerText"))
igtbl_saveChangedCell(gs,cellObj,this.webCombo.getDataValue());
}
if(igtbl_fireEvent(gn,gs.Events.BeforeExitEditMode,"(\""+gn+"\",\""+cell.id+"\")")==true)
{
if(!gs.exitEditCancel && !gs.insideSetActive)
{
gs.insideSetActive=true;
igtbl_setActiveCell(gn,igtbl_getElementById(eCombo.getAttribute("currentCell")));
gs.insideSetActive=false;
}
gs.exitEditCancel=true;
return;
}
this.webCombo.setVisible(false);
igcmbo_displaying=null;
gs.exitEditCancel=false;
eCombo.removeAttribute("currentCell");
eCombo.removeAttribute("oldInnerText");
if(gs.ActiveCell!="")
igtbl_setActiveCell(gn,igtbl_getElementById(gs.ActiveCell));
else if(gs.ActiveRow!="")
igtbl_setActiveRow(gn,igtbl_getElementById(gs.ActiveRow));
igtbl_fireEvent(gn,gs.Events.AfterExitEditMode,"(\""+gn+"\",\""+cell.id+"\");");
if(changed)
{
igtbl_fireEvent(gn,gs.Events.AfterCellUpdate,"(\""+gn+"\",\""+cell.id+"\");");
if(gs.NeedPostBack)
{
gs.GridIsLoaded=false;
igtbl_doPostBack(gn);
}
}
this.webCombo = null;
return;
}
}
function igtbl_dropDownListFocusOut(evnt,gn)
{
if(typeof(event)!="undefined")
evnt=event;
var se=igtbl_srcElement(evnt);
if(typeof(gn)=="undefined")
gn=se.id.substr(0,se.id.length-3);
var cell=igtbl_getElementById(se.getAttribute("currentCell"));
if(!cell || se.getAttribute("noOnBlur"))
return;
var gs=igtbl_getGridById(gn);
var oldText=se.getAttribute("oldInnerText");
if(!cell.getAttribute("oldValue"))
cell.setAttribute("oldValue",oldText);
var column=igtbl_getColumnById(cell.id);
var cellObj=igtbl_getCellById(cell.id);
var value=igtbl_getInnerText(se.options[se.selectedIndex]);
var changed=(oldText!=value);
if(changed && value!=column.ValueListPrompt)
{
value=igtbl_fireEvent(gn,gs.Events.BeforeCellUpdate,"(\""+gn+"\",\""+cell.id+"\",\""+value+"\")");
if(value==true)
changed=false;
}
if(changed)
{
if(value==false || value==undefined)
value=igtbl_getInnerText(se.options[se.selectedIndex]);
if(value=="")
value=" ";
if(column.ValueListPrompt!="" && se.selectedIndex==0)
value=se.getAttribute("oldInnerText");
if(se.getAttribute("hasHref"))
{
cell.innerHTML="";
var l=document.createElement("A");
l.href=(value.indexOf('@')>=0?"mailto:":"")+value;
igtbl_setInnerText(l,value);
cell.appendChild(l);
}
else if(cell.childNodes.length>0 && cell.childNodes[0].tagName=="NOBR")
igtbl_setInnerText(cell.childNodes[0],value);
else
igtbl_setInnerText(cell,value);
if(value==" ")
value="";
igtbl_saveChangedCell(gs,cellObj,value);
}
else
{
if(se.getAttribute("hasHref"))
{
cell.innerHTML="";
var l=document.createElement("A");
l.href=(oldText.indexOf('@')>=0?"mailto:":"")+oldText;
igtbl_setInnerText(l,oldText);
cell.appendChild(l);
}
else
igtbl_setInnerText(cell,oldText);
}
cell.removeAttribute("igCellText");
if(igtbl_fireEvent(gn,gs.Events.BeforeExitEditMode,"(\""+gn+"\",\""+cell.id+"\")")==true)
{
if(!gs.exitEditCancel && !gs.insideSetActive)
{
gs.insideSetActive=true;
igtbl_setActiveCell(gn,igtbl_getElementById(se.getAttribute("currentCell")));
gs.insideSetActive=false;
}
gs.exitEditCancel=true;
return;
}
gs.exitEditCancel=false;
if(gs.ActiveCell!="")
igtbl_setActiveCell(gn,igtbl_getElementById(gs.ActiveCell));
else if(gs.ActiveRow!="")
igtbl_setActiveRow(gn,igtbl_getElementById(gs.ActiveRow));
if(evnt.rangeParent && igtbl_lastActiveGrid)
{
if(!igtbl_isChild(igtbl_lastActiveGrid,evnt.rangeParent))
igtbl_lastActiveGrid="";
}
igtbl_fireEvent(gn,gs.Events.AfterExitEditMode,"(\""+gn+"\",\""+cell.id+"\");");
igtbl_blur(gn);
if(changed)
{
igtbl_fireEvent(gn,gs.Events.AfterCellUpdate,"(\""+gn+"\",\""+cell.id+"\");");
if(gs.NeedPostBack)
igtbl_doPostBack(gn);
}
}
function igtbl_editBoxFocusOut(evnt,gn)
{
if(typeof(event)!="undefined")
evnt=event;
var se=igtbl_srcElement(evnt);
if(typeof(gn)=="undefined")
gn=se.id.substr(0,se.id.length-3);
var cell=igtbl_getElementById(se.getAttribute("currentCell"));
if(!cell || se.getAttribute("noOnBlur"))
return;
var gs=igtbl_getGridById(gn);
var oldText=se.getAttribute("oldInnerText");
if(!cell.getAttribute("oldValue"))
cell.setAttribute("oldValue",oldText);
var value=se.value;
var column=gs.Bands[cell.parentNode.parentNode.parentNode.getAttribute("bandNo")].Columns[igtbl_getColumnNo(gn,cell)];
var cellObj=igtbl_getCellById(cell.id);
if(column.MaskDisplay!="")
{
value=igtbl_Mask(gn,value,column.DataType,column.MaskDisplay);
if(value=="")
value=oldText;
}
if(column.Case==1)
value=value.toLowerCase();
else if(column.Case==2)
value=value.toUpperCase();
var changed=(oldText!=value);
if(changed)
{
value=igtbl_fireEvent(gn,gs.Events.BeforeCellUpdate,"(\""+gn+"\",\""+cell.id+"\",\""+value+"\")");
if(value==true)
changed=false;
}
if(changed)
{
var iValue=se.value;
if(value==false || value==undefined)
{
value=iValue;
if(column.MaskDisplay!="")
{
value=igtbl_Mask(gn,value,column.DataType,column.MaskDisplay);
if(value=="")
value=oldText;
}
if(column.Case==1)
value=value.toLowerCase();
else if(column.Case==2)
value=value.toUpperCase();
}
if(value=="")
value=" ";
if(se.getAttribute("hasHref"))
{
cell.innerHTML="";
var l=document.createElement("A");
l.href=(value.indexOf('@')>=0?"mailto:":"")+value;
igtbl_setInnerText(l,value);
cell.appendChild(l);
}
else if(cell.childNodes.length>0 && cell.childNodes[0].tagName=="NOBR")
igtbl_setInnerText(cell.childNodes[0],value);
else
igtbl_setInnerText(cell,value);
if(value==" ")
value="";
if(column.MaskDisplay!="")
{
value=igtbl_clarifyInput(gn,iValue.toString(),column.DataType);
cell.setAttribute("unmaskedValue",value);
}
else if(column.FieldLength!=0 || column.Case!=0)
{
value=se.value;
cell.setAttribute("unmaskedValue",value);
}
igtbl_saveChangedCell(gs,cellObj,value);
}
else
{
if(se.getAttribute("hasHref"))
{
cell.innerHTML="";
var l=document.createElement("A");
l.href=(oldText.indexOf('@')>=0?"mailto:":"")+oldText;
igtbl_setInnerText(l,oldText);
cell.appendChild(l);
}
else
igtbl_setInnerText(cell,oldText);
}
cell.removeAttribute("igCellText");
if(igtbl_fireEvent(gn,gs.Events.BeforeExitEditMode,"(\""+gn+"\",\""+cell.id+"\")")==true)
{
if(!gs.exitEditCancel && !gs.insideSetActive)
{
gs.insideSetActive=true;
igtbl_setActiveCell(gn,igtbl_getElementById(se.getAttribute("currentCell")));
gs.insideSetActive=false;
}
gs.exitEditCancel=true;
return;
}
gs.exitEditCancel=false;
if(gs.ActiveCell!="")
igtbl_setActiveCell(gn,igtbl_getElementById(gs.ActiveCell));
else if(gs.ActiveRow!="")
igtbl_setActiveRow(gn,igtbl_getElementById(gs.ActiveRow));
if(evnt.rangeParent && igtbl_lastActiveGrid)
{
if(!igtbl_isChild(igtbl_lastActiveGrid,evnt.rangeParent))
igtbl_lastActiveGrid="";
}
igtbl_fireEvent(gn,gs.Events.AfterExitEditMode,"(\""+gn+"\",\""+cell.id+"\");");
igtbl_blur(gn);
if(changed)
{
igtbl_fireEvent(gn,gs.Events.AfterCellUpdate,"(\""+gn+"\",\""+cell.id+"\");");
if(gs.NeedPostBack)
igtbl_doPostBack(gn);
}
}
function igtbl_editBoxMLFocusOut(evnt,gn)
{
if(typeof(event)!="undefined")
evnt=event;
var se=igtbl_srcElement(evnt);
if(typeof(gn)=="undefined")
gn=se.id.substr(0,se.id.length-3);
var cell=igtbl_getElementById(se.getAttribute("currentCell"));
if(!cell || se.getAttribute("noOnBlur"))
return;
var gs=igtbl_getGridById(gn);
var oldText=cell.innerHTML.replace(/<BR>/g,"\r\n");
if(!cell.getAttribute("oldValue"))
cell.setAttribute("oldValue",oldText);
var value=se.value;
var column=gs.Bands[cell.parentNode.parentNode.parentNode.getAttribute("bandNo")].Columns[igtbl_getColumnNo(gn,cell)];
var cellObj=igtbl_getCellById(cell.id);
if(column.MaskDisplay!="")
{
value=igtbl_Mask(gn,value,column.DataType,column.MaskDisplay);
if(value=="")
value=oldText;
}
if(column.FieldLength>0)
value=value.substr(0,column.FieldLength);
if(column.Case==1)
value=value.toLowerCase();
else if(column.Case==2)
value=value.toUpperCase();
var changed=(oldText!=value);
if(changed)
{
value=igtbl_fireEvent(gn,gs.Events.BeforeCellUpdate,"(\""+gn+"\",\""+cell.id+"\",\""+value+"\")");
if(value==true)
changed=false;
}
if(changed)
{
var iValue=se.value;
if(value==false || value==undefined)
{
value=iValue;
if(column.MaskDisplay!="")
{
value=igtbl_Mask(gn,value,column.DataType,column.MaskDisplay);
if(value=="")
value=oldText;
}
if(column.FieldLength>0)
value=value.substr(0,column.FieldLength);
if(column.Case==1)
value=value.toLowerCase();
else if(column.Case==2)
value=value.toUpperCase();
}
if(value=="")
value=" ";
if(se.getAttribute("hasHref"))
{
cell.innerHTML="";
var l=document.createElement("A");
l.href=(value.indexOf('@')>=0?"mailto:":"")+value;
l.innerHTML=value.replace(/\r\n/g,"<BR>");
cell.appendChild(l);
}
else if(cell.childNodes.length>0 && cell.childNodes[0].tagName=="NOBR")
cell.childNodes[0].innerHTML=value.replace(/\r\n/g,"<BR>");
else
cell.innerHTML=value.replace(/\r\n/g,"<BR>");
if(value==" ")
value="";
if(column.MaskDisplay!="")
{
value=igtbl_clarifyInput(gn,value.toString(),column.DataType);
cell.setAttribute("unmaskedValue",value);
}
else if(column.FieldLength!=0 || column.Case!=0)
{
value=se.value;
cell.setAttribute("unmaskedValue",value);
}
igtbl_saveChangedCell(gs,cellObj,value);
}
else
{
if(se.getAttribute("hasHref"))
{
cell.innerHTML="";
var l=document.createElement("A");
l.href=(oldText.indexOf('@')>=0?"mailto:":"")+oldText;
l.innerHTML=oldText.replace(/\r\n/g,"<BR>");
cell.appendChild(l);
}
else
cell.innerHTML=oldText.replace(/\r\n/g,"<BR>");
}
cell.removeAttribute("igCellText");
if(igtbl_fireEvent(gn,gs.Events.BeforeExitEditMode,"(\""+gn+"\",\""+cell.id+"\")")==true)
{
if(!gs.exitEditCancel && !gs.insideSetActive)
{
gs.insideSetActive=true;
igtbl_setActiveCell(gn,igtbl_getElementById(se.getAttribute("currentCell")));
gs.insideSetActive=false;
}
gs.exitEditCancel=true;
return;
}
gs.exitEditCancel=false;
if(gs.ActiveCell!="")
igtbl_setActiveCell(gn,igtbl_getElementById(gs.ActiveCell));
else if(gs.ActiveRow!="")
igtbl_setActiveRow(gn,igtbl_getElementById(gs.ActiveRow));
if(evnt.rangeParent && igtbl_lastActiveGrid)
{
if(!igtbl_isChild(igtbl_lastActiveGrid,evnt.rangeParent))
igtbl_lastActiveGrid="";
}
igtbl_fireEvent(gn,gs.Events.AfterExitEditMode,"(\""+gn+"\",\""+cell.id+"\");");
igtbl_blur(gn);
if(changed)
{
igtbl_fireEvent(gn,gs.Events.AfterCellUpdate,"(\""+gn+"\",\""+cell.id+"\");");
if(gs.NeedPostBack)
igtbl_doPostBack(gn);
}
}
function igtbl_getOffsetX(evnt,e)
{
return evnt.clientX-igtbl_getLeftPos(e);
}
function igtbl_getOffsetY(evnt,e)
{
return evnt.clientY-igtbl_getTopPos(e);
}
function igtbl_onResize(gn)
{
}
function igtbl_isDisabled(elem)
{
return elem.getAttribute("disabled") && elem.getAttribute("disabled").toString()=="true";
}
function igtbl_setDisabled(elem,b)
{
elem.setAttribute("disabled",b);
}
function igtbl_activate(gn)
{
if(igtbl_glFocusedElem)
igtbl_glFocusedElem.blur();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -