📄 ig_webgrid.js
字号:
else
cell.beginEdit();
}
}
else
{
if(se.cellIndex<column.Band.firstActiveCell)
return;
if(igtbl_fireEvent(gn,gs.Events.DblClick,"(\""+gn+"\",\""+se.id+"\")")==true)
return;
if(gs.NeedPostBack)
igtbl_doPostBack(gn,'HeaderDblClick:'+se.id);
}
}
function igtbl_selectRegion(gn,se)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return;
var rowContainer;
if(!se)
return;
if(se.getAttribute("groupRow"))
rowContainer=se.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
else
rowContainer=se.parentNode.parentNode;
var te=gs.Element;
var selTableId = te.getAttribute("selectTable");
var workTableId;
if(se.getAttribute("groupRow"))
workTableId=se.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id;
else
workTableId=se.parentNode.parentNode.parentNode.id;
if(workTableId=="")
return;
var bandNo=igtbl_getElementById(workTableId).getAttribute("bandNo");
if(selTableId==workTableId)
{
var selMethod = te.getAttribute("selectMethod");
if(selMethod=="row" && (se.cellIndex==igtbl_getBandFAC(gn,se)-1 || igtbl_getCellClickAction(gn,bandNo)==2 && se.cellIndex>igtbl_getBandFAC(gn,se)-1 || se.getAttribute("groupRow")))
{
var selRow=igtbl_getRowById(te.getAttribute("startPointRow"));
var rowId;
if(se.getAttribute("groupRow"))
rowId=se.parentNode.parentNode.parentNode.parentNode.parentNode.id;
else
rowId=se.parentNode.id;
var curRow=igtbl_getRowById(rowId);
if(selRow && igtbl_getSelectTypeRow(gn,bandNo)==3 && igtbl_getCellClickAction(gn,bandNo)>0)
{
gs.selectRowRegion(selRow,curRow);
igtbl_setActiveRow(gn,curRow.getFirstRow());
}
else
{
if(!(curRow.getSelected() && igtbl_getLength(gs.SelectedRows)==1))
{
igtbl_clearSelectionAll(gn);
if(se.getAttribute("groupRow"))
rowId=igtbl_getWorkRow(se.parentNode).id;
if(igtbl_getSelectTypeRow(gn,bandNo)>1 && igtbl_getCellClickAction(gn,bandNo)>0)
igtbl_selectRow(gn,curRow);
}
igtbl_setActiveRow(gn,igtbl_getFirstRow(igtbl_getElementById(rowId)));
}
}
else if(selMethod=="cell" && (se.cellIndex>igtbl_getBandFAC(gn,se)-1))
{
var selCell=igtbl_getCellById(te.getAttribute("startPointCell"));
var curCell=igtbl_getCellById(se.id);
if(igtbl_getSelectTypeCell(gn,bandNo)==3 && igtbl_getCellClickAction(gn,bandNo)>0 && selCell)
{
gs.selectCellRegion(selCell,curCell);
curCell.activate();
}
else
{
if(!(curCell.getSelected() && igtbl_getLength(gs.SelectedRows)==1))
{
igtbl_clearSelectionAll(gn);
if(igtbl_getSelectTypeCell(gn,bandNo)>1 && igtbl_getCellClickAction(gn,bandNo)>0)
igtbl_selectCell(gn,curCell);
}
igtbl_setActiveCell(gn,se);
}
}
}
}
function igtbl_setSelectedRowImg(gn,row,hide)
{
var gs=igtbl_getGridById(gn);
if(!gs) return;
if(row)
igtbl_getRowById(row.id).setSelectedRowImg(hide);
}
function igtbl_setNewRowImg(gn,row)
{
var gs=igtbl_getGridById(gn);
if(!gs) return;
gs.setNewRowImg(row?igtbl_getRowById(row.id):null);
}
function igtbl_clearSelectionAll(gn)
{
var gs=igtbl_getGridById(gn);
if(igtbl_fireEvent(gn,gs.Events.BeforeSelectChange,"(\""+gn+"\",\"\")")==true)
return;
var row,column,cell;
gs.noCellChange=false;
for(var row in gs.SelectedRows)
igtbl_selectRow(gn,row,false,false);
for(var column in gs.SelectedColumns)
igtbl_selectColumn(gn,column,false,false);
for(var row in gs.SelectedCellsRows)
{
for(var cell in gs.SelectedCellsRows[row])
delete gs.SelectedCellsRows[row][cell];
delete gs.SelectedCellsRows[row];
}
for(var cell in gs.SelectedCells)
igtbl_selectCell(gn,cell,false,false);
}
function igtbl_selectCell(gn,cellID,selFlag,fireEvent)
{
var cell=cellID;
if(typeof(cell)=="string")
cell=igtbl_getCellById(cellID);
else
cellID=cell.Element.id;
if(!cell)
return;
cell.select(selFlag,fireEvent);
}
function igtbl_selectRow(gn,rowID,selFlag,fireEvent)
{
var rowObj=rowID;
if(typeof(rowObj)=="string")
rowObj=igtbl_getRowById(rowID);
else
rowID=rowObj.Element.id;
if(!rowObj)
return false;
return rowObj.select(selFlag,fireEvent);
}
function igtbl_selColRI(gn,column,bandNo,colNo)
{
for(var i=1;i<column.parentNode.parentNode.parentNode.rows.length;i++)
{
var row=column.parentNode.parentNode.parentNode.rows[i];
if(!row.getAttribute("hiddenRow") && row.parentNode.tagName!="TFOOT")
igtbl_changeStyle(gn,igtbl_getElemVis(row.cells,column.cellIndex),igtbl_getSelCellClass(gn,bandNo,colNo));
}
igtbl_changeStyle(gn,column,igtbl_getSelHeadClass(gn,bandNo,colNo));
}
function igtbl_selectColumn(gn,columnID,selFlag,fireEvent)
{
var column=igtbl_getElementById(columnID);
var bandNo=column.parentNode.parentNode.parentNode.getAttribute("bandNo");
if(igtbl_getSelectTypeColumn(gn,bandNo)<2)
return;
var colNo=igtbl_colNoFromColId(columnID);
var gs=igtbl_getGridById(gn);
if(gs.exitEditCancel || gs.noCellChange)
return;
if(fireEvent!=false)
if(igtbl_fireEvent(gn,gs.Events.BeforeSelectChange,"(\""+gn+"\",\""+columnID+"\")")==true)
return;
if(selFlag!=false)
{
var cols=igtbl_getDocumentElement(columnID);
if(cols.length)
for(var j=0;j<cols.length;j++)
igtbl_selColRI(gn,cols[j],bandNo,colNo);
else
igtbl_selColRI(gn,column,bandNo,colNo);
gs.recordChange("SelectedColumns",gs.Bands[bandNo].Columns[colNo]);
igtbl_getColumnById(columnID).Selected=true;
gs.Element.setAttribute("lastSelectedColumn",columnID);
}
else
{
var cols=igtbl_getDocumentElement(columnID);
if(cols.length)
for(var j=0;j<cols.length;j++)
{
igtbl_changeStyle(gn,cols[j],null);
for(var i=1;i<cols[j].parentNode.parentNode.parentNode.rows.length;i++)
{
var row=cols[j].parentNode.parentNode.parentNode.rows[i];
var cell=igtbl_getElemVis(row.cells,column.cellIndex);
if(!row.getAttribute("hiddenRow") && !gs.SelectedRows[row.id] && !gs.SelectedCells[cell.id])
igtbl_changeStyle(gn,cell,null);
}
}
else
{
igtbl_changeStyle(gn,column,null);
for(var i=1;i<column.parentNode.parentNode.parentNode.rows.length;i++)
{
var row=column.parentNode.parentNode.parentNode.rows[i];
var cell=igtbl_getElemVis(row.cells,column.cellIndex);
if(!row.getAttribute("hiddenRow") && !gs.SelectedRows[row.id] && !gs.SelectedCells[cell.id])
igtbl_changeStyle(gn,cell,null);
}
}
gs.removeChange("SelectedColumns",gs.Bands[bandNo].Columns[colNo]);
igtbl_getColumnById(columnID).Selected=false;
}
if(fireEvent!=false)
{
igtbl_fireEvent(gn,gs.Events.AfterSelectChange,"(\""+gn+"\",\""+columnID+"\");");
if(gs.NeedPostBack)
igtbl_moveBackPostField(gn,"SelectedColumns");
}
}
//Expands/collapses row in internal row structure
function igtbl_stateExpandRow(gn,row,expandFlag)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return;
if(expandFlag)
{
gs.recordChange("ExpandedRows",row,row);
if(gs.CollapsedRows[row.Element.id])
gs.removeChange("CollapsedRows",row);
}
else
{
gs.recordChange("CollapsedRows",row,row);
gs.removeChange("ExpandedRows",row);
}
}
function igtbl_arrayHasElements(array)
{
if(!array)
return false;
for(element in array)
if(array[element]!=null)
return true;
return false;
}
function igtbl_getLeftPos(e,cc,oe)
{
return igtbl_getAbsolutePos("Left",e,cc,oe);
}
function igtbl_getTopPos(e,cc,oe)
{
return igtbl_getAbsolutePos("Top",e,cc,oe);
}
function igtbl_getAbsolutePos(where,e,cc,oe)
{
var offs="offset"+where,cl="client"+where,bw="border"+where+"Width",sl="scroll"+where;
var crd=e[offs];
if(e[cl] && cc!=false)
crd+=e[cl];
if(typeof(oe)=="undefined")
oe=null;
var tmpE=e.offsetParent, cSb=true;
while(tmpE!=null && tmpE!=oe)
{
crd+=tmpE[offs];
if((tmpE.tagName=="DIV" || tmpE.tagName=="TD") && tmpE.style[bw])
{
var bwv=parseInt(tmpE.style[bw],10);
if(!isNaN(bwv))
crd+=bwv;
}
if(cSb && typeof(tmpE[sl])!="undefined")
{
var op=tmpE.offsetParent,t=tmpE;
while(t && t!=op && t.tagName!="BODY")
{
if(t[sl])
crd-=t[sl];
t=t.parentNode;
}
if(tmpE.tagName=="DIV")
cSb=false;
}
if(tmpE[cl] && cc!=false)
crd+=tmpE[cl];
tmpE=tmpE.offsetParent;
}
if(tmpE && tmpE[cl] && cc!=false)
crd+=tmpE[cl];
return crd;
}
function igtbl_getRelativePos(gn,e,where)
{
var g=igtbl_getGridById(gn);
var mainGrid=igtbl_getElementById(gn+"_main");
var passedMainGrid=false;
var offs="offset"+where,bw="border"+where+"Width";
var ovfl="overflow",ovflC=ovfl+(where=="Left"?"X":"Y");
var crd=e[offs];
var parent=e.offsetParent;
while((parent!=null && parent.tagName!="BODY" && (parent.style.position!="relative" || (parent.style.position=="relative" && parent.id=="G_"+gn))))
{
passedMainGrid=passedMainGrid||igtbl_isAChildOfB(mainGrid,parent);
if(passedMainGrid && (parent.style.position=="absolute" || parent.style[ovflC] && parent.style[ovflC]!="visible" || parent.style[ovfl] && parent.style[ovfl]!="visible"))
break;
crd+=parent[offs];
if(ig_csom.IsIE && (parent.tagName=="DIV" || parent.tagName=="TD" || parent.tagName=="FIELDSET") && parent.style[bw])
{
var bwv=parseInt(parent.style[bw],10);
if(!isNaN(bwv))
crd+=bwv;
}
if(parent==mainGrid)
passedMainGrid=true;
parent=parent.offsetParent;
}
return crd-g.Element.offsetParent["scroll"+where];
}
function igtbl_isAChildOfB(a,b){
if(a==null||b==null)return false;
while(a!=null){
a=a.parentNode;
if(a==b)return true;
}
return false;
}
function igtbl_moveBackPostField(gn,param)
{
var gs=igtbl_getGridById(gn);
gs.moveBackPostField=param;
}
function igtbl_updatePostField(gn,param)
{
}
function igtbl_isVisible(elem)
{
while(elem && elem.tagName!="BODY")
{
if(elem.style && elem.style.display=="none")
return false;
elem=elem.parentNode;
}
return true;
}
var igtbl_dontHandleChkBoxChange=false;
function igtbl_chkBoxChange(evnt,gn)
{
if(igtbl_dontHandleChkBoxChange||evnt.propertyName=="disabled")
return false;
var se=igtbl_srcElement(evnt);
var c=se.parentNode;
while(c && !(c.tagName=="TD" && c.id!=""))
c=c.parentNode;
if(!c) return;
var s=se;
var cell=igtbl_getCellById(c.id);
if(!cell) return;
var column=cell.Column;
var gs=igtbl_getGridById(gn);
var oldValue=!s.checked;
if(gs.exitEditCancel || !cell.isEditable() || igtbl_fireEvent(gn,gs.Events.BeforeCellUpdate,"(\""+gn+"\",\""+c.id+"\",\""+s.checked+"\")"))
{
igtbl_dontHandleChkBoxChange=true;
s.checked=oldValue;
igtbl_dontHandleChkBoxChange=false;
return true;
}
cell.Row._dataChanged|=2;
if(typeof(cell._oldValue)=="undefined")
cell._oldValue=oldValue;
igtbl_saveChangedCell(gs,cell,s.checked.toString());
if(!c.getAttribute("oldValue"))
c.setAttribute("oldValue",s.checked);
c.setAttribute("chkBoxState",s.checked.toString());
var cca=igtbl_getCellClickAction(gn,column.Band.Index);
if(cca==1 || cca==3)
igtbl_setActiveCell(gn,c);
else if(cca==2)
igtbl_setActiveRow(gn,c.parentNode);
if(cell.Node)
{
cell.Node.selectSingleNode("Value").text=!s.checked?"False":"True";
gs.invokeXmlHttpRequest(gs.eReqType.UpdateCell,cell,s.checked);
}
igtbl_fireEvent(gn,gs.Events.AfterCellUpdate,"(\""+gn+"\",\""+c.id+"\",\""+s.checked+"\")");
if(gs.LoadOnDemand==3)
gs.NeedPostBack=false;
if(gs.NeedPostBack)
igtbl_doPostBack(gn);
return false;
}
function igtbl_colButtonClick(evnt,gn)
{
var se=null;
var b=igtbl_getElementById(gn+"_bt");
if(b)
se=igtbl_getElementById(b.getAttribute("srcElement"));
if(typeof(se)=="undefined" || !se)
{
se=igtbl_srcElement(evnt).parentNode;
if(se && se.tagName=="NOBR")
se=se.parentNode;
}
var gs=igtbl_getGridById(gn);
if(gs.exitEditCancel || typeof(se)=="undefined" || !se || se.id=="")
return;
igtbl_fireEvent(gn,gs.Events.ClickCellButton,"(\""+gn+"\",\""+se.id+"\")");
if(gs.NeedPostBack)
igtbl_doPostBack(gn,'CellButtonClick:'+se.id+"\x05"+igtbl_getCellById(se.id).getLevel(true));
}
function igtbl_colButtonMouseOut(gn)
{
var b=igtbl_getElementById(gn+"_bt");
if(!b)
return;
if(b.getAttribute("noOnBlur"))
return;
if(b.style.display=="")
{
b.setAttribute("noOnBlur",true);
b.style.display="none";
b.removeAttribute("srcElement");
var gs=igtbl_getGridById(gn);
if(!gs.Activation.AllowActivation)
return;
if(gs.oActiveCell)
{
if(!gs.oActiveCell.Row.GroupByRow && gs.oActiveCell.Column.ColumnType==7 && gs.oActiveCell.Column.CellButtonDisplay==0)
igtbl_showColButton(gn,gs.oActiveCell.Element);
}
window.setTimeout("igt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -