📄 ig_webgrid.js
字号:
function igtbl_getGroupByRowClass(gn,bandNo)
{
return g.Bands[bandNo].getGroupByRowClass();
}
function igtbl_getHeadClass(gn,bandNo,columnNo)
{
var g=igtbl_getGridById(gn);
return g.Bands[bandNo].Columns[columnNo].getHeadClass();
}
function igtbl_getRowLabelClass(gn,bandNo)
{
var g=igtbl_getGridById(gn);
return g.Bands[bandNo].getRowLabelClass();
}
function igtbl_getSelGroupByRowClass(gn,bandNo)
{
var g=igtbl_getGridById(gn);
return g.Bands[bandNo].getSelGroupByRowClass();
}
function igtbl_getSelHeadClass(gn,bandNo,columnNo)
{
var g=igtbl_getGridById(gn);
if(g.Bands[bandNo].Columns[columnNo].SelHeadClass!="")
return g.Bands[bandNo].Columns[columnNo].SelHeadClass;
if(g.Bands[bandNo].SelHeadClass!="")
return g.Bands[bandNo].SelHeadClass;
return g.SelHeadClass;
}
function igtbl_getSelCellClass(gn,bandNo,columnNo)
{
var g=igtbl_getGridById(gn);
return g.Bands[bandNo].Columns[columnNo].getSelClass();
}
function igtbl_getExpAreaClass(gn,bandNo)
{
var g=igtbl_getGridById(gn);
return g.Bands[bandNo].getExpAreaClass();
}
function igtbl_getCurrentRowImage(gn,bandNo)
{
var g=igtbl_getGridById(gn);
var res=g.CurrentRowImage;
var band=g.Bands[bandNo];
if(band.CurrentRowImage!="")
res=band.CurrentRowImage;
var au=igtbl_getAllowUpdate(gn,band.Index);
if(band.RowTemplate!="" && (au==1 || au==3))
{
res=g.CurrentEditRowImage;
if(band.CurrentEditRowImage!="")
res=band.CurrentEditRowImage;
}
return res;
}
function igtbl_toggleRow()
{
var srcRow,expand;
if(arguments.length==1)
{
var evnt=arguments[0];
var se=igtbl_srcElement(evnt);
if(!se || se.tagName!="IMG")
return;
srcRow=se.parentNode.parentNode.id;
}
else
{
srcRow=arguments[1];
expand=arguments[2];
}
var sr = igtbl_getRowById(srcRow);
if(!sr) return;
igtbl_lastActiveGrid=sr.gridId;
if(!sr.getExpanded() && expand!=false)
sr.setExpanded(true);
else if(expand!=true)
sr.setExpanded(false);
}
function igtbl_selectStart(evnt)
{
var se=igtbl_srcElement(evnt);
if(se.tagName=="TD" || se.tagName=="NOBR" || se.tagName=="TH" || se.tagName=="A")
{
evnt.cancelBubble = true;
evnt.returnValue = false;
}
}
function igtbl_getBandFAC(gn,elem)
{
var gs=igtbl_getGridById(gn);
var bandNo=null;
if(elem.tagName=="TD" || elem.tagName=="TH")
bandNo=elem.parentNode.parentNode.parentNode.getAttribute("bandNo");
else if(elem.tagName=="TR")
bandNo=elem.parentNode.parentNode.getAttribute("bandNo");
else if(elem.tagName=="TABLE")
bandNo=elem.getAttribute("bandNo");
if(bandNo)
return gs.Bands[bandNo].firstActiveCell;
return null;
}
function igtbl_headerClickDown(evnt,gn)
{
if(!evnt && event)
evnt=event;
if(!gn && igtbl_lastActiveGrid)
gn=igtbl_lastActiveGrid;
if(!gn || !evnt)
return false;
var gs=igtbl_getGridById(gn);
if(!gs)
return;
igtbl_lastActiveGrid=gn;
var te=gs.Element;
te.setAttribute("mouseDown","1");
var se=igtbl_srcElement(evnt);
if(se && se.tagName=="IMG" && se.getAttribute("imgType")=="group")
return;
while(se && (se.tagName!="TH" || se.id.length<gn.length || se.id.substr(0,gn.length)!=gn) && (se.tagName!="DIV" || !se.getAttribute("groupInfo")))
se=se.parentNode;
if(!se)
return;
if(se.tagName == "TH")
{
var colObj=igtbl_getColumnById(se.id);
if(!colObj) return;
if(igtbl_fireEvent(gn,gs.Events.MouseDown,"(\""+gn+"\",\""+se.id+"\","+igtbl_button(gn,evnt)+")")==true)
return true;
if(igtbl_button(gn,evnt)!=0)
return;
var bandNo=colObj.Band.Index;
var band=colObj.Band;
if(se.cellIndex>=band.firstActiveCell && igtbl_getOffsetX(evnt,se)>igtbl_clientWidth(se)-4 && igtbl_getAllowColSizing(gn,bandNo,colObj.Index)==2)
{
te.setAttribute("elementMode", "resize");
te.setAttribute("resizeColumn", se.id);
igtbl_lineupHeaders(se.id,band);
var div,divr;
if(!document.body.igtbl_resizeDiv)
{
div=document.createElement("DIV");
document.body.appendChild(div);
div.style.zIndex=10000;
div.style.position="absolute";
div.style.left=0;
div.style.top=0;
if(div.addEventListener)
{
div.addEventListener("mouseup",igtbl_resizeDivMouseUp,false);
div.addEventListener("mousemove",igtbl_resizeDivMouseMove,false);
div.addEventListener("selectstart",igtbl_resizeDivSelectStart,false);
}
else
{
div.onmouseup=igtbl_resizeDivMouseUp;
div.onmousemove=igtbl_resizeDivMouseMove;
div.onselectstart=igtbl_resizeDivSelectStart;
}
document.body.igtbl_resizeDiv=div;
divr=document.createElement("DIV");
div.appendChild(divr);
divr.style.position="absolute";
divr.style.borderWidth=1;
divr.style.borderColor="black";
divr.style.borderStyle="solid";
divr.style.width=2;
}
else
{
div=document.body.igtbl_resizeDiv;
divr=div.firstChild;
}
div.style.display="";
div.style.cursor="w-resize";
div.style.width=document.body.clientWidth;
div.style.height=document.body.clientHeight;
div.style.backgroundColor="transparent";
divr.style.top=igtbl_getTopPos(te.parentNode);
divr.style.left=evnt.clientX;
divr.style.height=te.parentNode.offsetHeight;
div.column=colObj;
div.initX=evnt.clientX;
return true;
}
se.setAttribute("justClicked",true);
if(se.cellIndex>band.firstActiveCell-1)
{
if(igtbl_getHeaderClickAction(gn,bandNo,colObj.Index)==1 && (gs.SelectedColumns[se.id]!=true || gs.ViewType!=2 || igtbl_getSelectTypeColumn(gn,bandNo)==3))
{
if(igtbl_getSelectTypeColumn(gn,bandNo)<2)
return true;
te.setAttribute("elementMode", "select");
te.setAttribute("selectMethod", "column");
if(!(igtbl_getSelectTypeColumn(gn,bandNo)==3 && evnt.ctrlKey))
igtbl_clearSelectionAll(gn);
if(te.getAttribute("shiftSelect") && evnt.shiftKey)
{
te.setAttribute("lastSelectedColumn","");
igtbl_selectColumnRegion(gn,se);
te.removeAttribute("shiftSelect");
}
else
{
te.setAttribute("startColumn", se.id);
if(gs.SelectedColumns[se.id] && evnt.ctrlKey)
igtbl_selectColumn(gn,se.id,false);
else
igtbl_selectColumn(gn,se.id);
te.removeAttribute("shiftSelect", true);
if(!evnt.ctrlKey)
te.setAttribute("shiftSelect",true);
}
}
}
return true;
}
else if(se.tagName=="DIV" && se.getAttribute("groupInfo"))
{
if(igtbl_button(gn,evnt)!=0)
return;
if(igtbl_fireEvent(gn,gs.Events.MouseDown,"(\""+gn+"\",\""+se.id+"\","+igtbl_button(gn,evnt)+")")==true)
return;
var groupInfo=se.getAttribute("groupInfo").split(":");
if(groupInfo[0]!="band")
igtbl_changeStyle(gn,se,igtbl_getSelHeadClass(gn,groupInfo[1],groupInfo[2]));
se.setAttribute("justClicked",true);
return true;
}
}
function igtbl_resizeDivMouseUp(evnt)
{
if(!evnt) evnt=event;
if(!evnt) return;
var se=document.body.igtbl_resizeDiv;
se.style.display="none";
if(se.initX!=evnt.clientX)
{
var col=se.column;
var oldWidth=parseInt(col.Width,10);
var newWidth=oldWidth+evnt.clientX-se.initX;
if(newWidth<=0)
newWidth=1;
if(oldWidth!=newWidth)
col.setWidth(newWidth);
}
}
function igtbl_resizeDivMouseMove(evnt)
{
if(!evnt) evnt=event;
if(!evnt) return;
var se=document.body.igtbl_resizeDiv;
se.style.cursor="w-resize";
if(!se.firstChild)
se=se.parentNode;
if(se.initX!=evnt.clientX)
{
var col=se.column;
if(parseInt(col.Width,10)+evnt.clientX-se.initX>0)
se.firstChild.style.left=evnt.clientX+document.body.scrollLeft;
}
}
function igtbl_resizeDivSelectStart(evnt)
{
if(!evnt) evnt=event;
if(!evnt) return;
return igtbl_cancelEvent(evnt);
}
function igtbl_lineupHeaders(colId,band)
{
var gs=band.Grid;
var te=gs.Element;
var cg=new Array();
var stat=false;
if(band.Index==0 && !band.IsGrouped && gs.StationaryMargins>0)
{
cg[0]=te.childNodes[0];
if(gs.StatHeader)
cg[1]=gs.StatHeader.Element.firstChild;
if(gs.StatFooter)
cg[cg.length]=gs.StatFooter.Element.firstChild;
stat=true;
}
else
{
var e=igtbl_getDocumentElement(colId);
if(e && e.length)
for(var i=0;i<e.length;i++)
cg[i]=e[i].parentNode.parentNode.previousSibling;
else if(e)
cg[0]=e.parentNode.parentNode.previousSibling;
}
if(cg.length>0)
{
for(var j=0;j<cg.length;j++)
{
for(var i=0;i<cg[j].childNodes.length;i++)
{
var w=cg[j].childNodes[i].width;
if(!w || w.substr(w.length-1)=="%")
cg[j].childNodes[i].oldWidth=cg[j].childNodes[i].offsetWidth;
}
if(j>0 && stat)
cg[j].parentNode.parentNode.style.width="";
else
cg[j].parentNode.style.width="";
for(var i=0;i<cg[j].childNodes.length;i++)
{
if(cg[j].childNodes[i].oldWidth)
{
if(cg[j].nextSibling)
{
var column=igtbl_getColumnById(igtbl_getElemVis(cg[j].nextSibling.firstChild.childNodes,i).id);
if(column)
column.Width=cg[j].childNodes[i].oldWidth;
}
cg[j].childNodes[i].style.width="";
cg[j].childNodes[i].width=cg[j].childNodes[i].oldWidth;
cg[j].childNodes[i].oldWidth=null;
}
}
}
}
igtbl_dispose(cg);
delete cg;
}
function igtbl_headerClickUp(evnt,gn)
{
if(!evnt && event)
evnt=event;
if(!gn && igtbl_lastActiveGrid)
gn=igtbl_lastActiveGrid;
if(!gn || !evnt)
return false;
var gs=igtbl_getGridById(gn);
if(!gs)
return;
if(igtbl_button(gn,evnt)==2)
return;
var te=gs.Element;
te.removeAttribute("mouseDown");
var se=igtbl_srcElement(evnt);
while(se && (se.tagName!="TH" || se.id.length<gn.length || se.id.substr(0,gn.length)!=gn) && (se.tagName!="DIV" || !se.getAttribute("groupInfo")))
se=se.parentNode;
if(!se)
return;
if(se.tagName == "TH")
{
var column=igtbl_getColumnById(se.id);
if(!column) return;
var bandNo=column.Band.Index;
var columnNo=column.Index;
var mode=te.getAttribute("elementMode");
if(mode!="resize")
igtbl_fireEvent(gn,gs.Events.ColumnHeaderClick,"(\""+gn+"\",\""+se.id+"\","+igtbl_button(gn,evnt)+")");
if(igtbl_fireEvent(gn,gs.Events.MouseUp,"(\""+gn+"\",\""+se.id+"\","+igtbl_button(gn,evnt)+")")==true)
return true;
if(se.cellIndex>column.Band.firstActiveCell-1)
{
if(igtbl_getHeaderClickAction(gn,bandNo,columnNo)!=1)
igtbl_changeStyle(gn,se,null);
te.removeAttribute("elementMode");
te.removeAttribute("resizeColumn");
te.removeAttribute("selectMethod");
if(!te.getAttribute("shiftSelect"))
te.removeAttribute("startColumn");
if(mode!="resize" && (igtbl_getHeaderClickAction(gn,bandNo,columnNo)==2 || igtbl_getHeaderClickAction(gn,bandNo,columnNo)==3) && column.SortIndicator!=3)
{
if(gs.Bands[bandNo].ClientSortEnabled)
{
gs.startHourGlass();
gs.sortingColumn=se;
gs.oldColCursor=se.style.cursor;
se.style.cursor="wait";
window.setTimeout("igtbl_gridSortColumn('"+gn+"','"+se.id+"',"+evnt.shiftKey+")",1);
}
else
gs.sortColumn(se.id,evnt.shiftKey);
if(gs.NeedPostBack)
igtbl_doPostBack(gn,evnt.shiftKey?"shiftKey:true":"");
}
else
{
if(mode=="resize")
igtbl_resizeDivMouseUp(evnt);
if((mode=="resize" || mode=="select") && gs.NeedPostBack)
igtbl_doPostBack(gn);
te.removeAttribute("elementMode");
}
}
}
else if(se.tagName=="DIV" && se.getAttribute("groupInfo"))
{
igtbl_fireEvent(gn,gs.Events.ColumnHeaderClick,"(\""+gn+"\",\""+se.id+"\","+igtbl_button(gn,evnt)+")");
if(igtbl_fireEvent(gn,gs.Events.MouseUp,"(\""+gn+"\",\""+se.id+"\","+igtbl_button(gn,evnt)+")")==true)
return;
var groupInfo=se.getAttribute("groupInfo").split(":");
if(groupInfo[0]!="band")
{
igtbl_changeStyle(gn,se,null);
var bandNo=igtbl_bandNoFromColId(se.id);
var columnNo=igtbl_colNoFromColId(se.id);
var column=gs.Bands[bandNo].Columns[columnNo];
if((igtbl_getHeaderClickAction(gn,bandNo,columnNo)==2 || igtbl_getHeaderClickAction(gn,bandNo,columnNo)==3) && column.SortIndicator!=3)
{
if(gs.Bands[bandNo].ClientSortEnabled)
{
gs.startHourGlass();
gs.sortingColumn=se;
gs.oldColCursor=se.style.cursor;
se.style.cursor="wait";
window.setTimeout("igtbl_gridSortColumn('"+gn+"','"+se.id+"',true)",1);
}
else
gs.sortColumn(se.id,evnt.shiftKey);
if(gs.NeedPostBack)
igtbl_doPostBack(gn,evnt.shiftKey?"shiftKey:true":"");
}
}
}
if(gs.NeedPostBack)
igtbl_doPostBack(gn,'HeaderClick:'+se.id);
return true;
}
function igtbl_headerContextMenu(evnt,gn)
{
if(!evnt && event)
evnt=event;
if(!gn && igtbl_lastActiveGrid)
gn=igtbl_lastActiveGrid;
if(!gn || !evnt)
return false;
var gs=igtbl_getGridById(gn);
if(!gs)
return;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -