📄 ig_webgrid.js
字号:
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" || se.tagName == "DIV")
{
var column=igtbl_getColumnById(se.id);
if(se.tagName=="TH" && !column) return;
igtbl_fireEvent(gn,gs.Events.ColumnHeaderClick,"(\""+gn+"\",\""+se.id+"\",2)");
if(igtbl_fireEvent(gn,gs.Events.MouseUp,"(\""+gn+"\",\""+se.id+"\",2)")==true)
{
evnt.cancelBubble=true;
evnt.returnValue=false;
return false;
}
}
}
function igtbl_gridSortColumn(gn,colId,shiftKey)
{
var gs=igtbl_getGridById(gn);
gs.sortColumn(colId,shiftKey);
if(gs.sortingColumn && gs.oldColCursor);
gs.sortingColumn.style.cursor=gs.oldColCursor;
gs.stopHourGlass();
if(gs.NeedPostBack)
igtbl_doPostBack(gn,"shiftKey:"+shiftKey.toString());
}
function igtbl_headerMouseOut(evnt,gn)
{
if(!evnt && event)
evnt=event;
if(!gn && igtbl_lastActiveGrid)
gn=igtbl_lastActiveGrid;
if(!gn || !evnt)
return false;
var gs=igtbl_getGridById(gn);
var se=igtbl_srcElement(evnt);
if(!gs || !se)
return;
if(se.tagName=="NOBR" && se.title)
se.title="";
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 sep=se.parentNode;
if(gs.Element.getAttribute("elementMode")=="select")
return true;
if(igtbl_fireEvent(gn,gs.Events.MouseOut,"(\""+gn+"\",\""+se.id+"\",1)")==true)
return true;
if(se.cellIndex>column.Band.firstActiveCell-1 && (igtbl_getHeaderClickAction(gn,column.Band.Index,column.Index)!=1))
igtbl_changeStyle(gn,se,null);
return true;
}
else if(se.tagName == "DIV" && se.getAttribute("groupInfo"))
{
if(igtbl_fireEvent(gn,gs.Events.MouseOut,"(\""+gn+"\",\""+se.id+"\",1)")==true)
return true;
var groupInfo=se.getAttribute("groupInfo").split(":");
if(groupInfo[0]!="band")
igtbl_changeStyle(gn,se,null);
return true;
}
}
function igtbl_headerMouseOver(evnt,gn)
{
if(!evnt && event)
evnt=event;
if(!gn && igtbl_lastActiveGrid)
gn=igtbl_lastActiveGrid;
if(!gn || !evnt)
return false;
var gs=igtbl_getGridById(gn);
var se=igtbl_srcElement(evnt);
if(!gs || !se)
return;
if(se.tagName=="NOBR")
{
var col=igtbl_getColumnById(se.parentNode.id);
if(col)
{
var nobr=se;
if(nobr.offsetWidth>se.parentNode.offsetWidth || nobr.offsetHeight>se.parentNode.offsetHeight)
nobr.title=col.HeaderText;
}
}
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!="DIV")
{
while(se && (se.tagName!="TH" || se.id.length<gn.length || se.id.substr(0,gn.length)!=gn))
se=se.parentNode;
if(!se)
return;
}
if(se.tagName == "TH")
{
var column=igtbl_getColumnById(se.id);
if(!column) return;
if(igtbl_fireEvent(gn,gs.Events.MouseOver,"(\""+gn+"\",\""+se.id+"\",1)")==true)
return;
}
else if(se.tagName == "DIV" && se.getAttribute("groupInfo"))
{
if(igtbl_fireEvent(gn,gs.Events.MouseOver,"(\""+gn+"\",\""+se.id+"\",1)")==true)
return;
}
}
function igtbl_headerMouseMove(evnt,gn)
{
if(!evnt && event)
evnt=event;
if(!gn && igtbl_lastActiveGrid)
gn=igtbl_lastActiveGrid;
if(!gn || !evnt)
return false;
var gs=igtbl_getGridById(gn);
var se=igtbl_srcElement(evnt);
if(!gs || !se)
return false;
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;
if(igtbl_button(gn,evnt)==0)
{
var mode = gs.Element.getAttribute("elementMode");
if(mode!=null && mode=="resize")
igtbl_resizeDivMouseMove(evnt);
else if(mode=="select" && se.cellIndex>column.Band.firstActiveCell-1 && igtbl_getHeaderClickAction(gn,bandNo,columnNo)==1 && !evnt.ctrlKey)
igtbl_selectColumnRegion(gn,se);
else
{
var cursorName = se.getAttribute("oldCursor");
if(cursorName != null)
{
se.style.cursor=cursorName;
se.removeAttribute("oldCursor");
}
if(se.cellIndex>column.Band.firstActiveCell-1 && (igtbl_getHeaderClickAction(gn,bandNo,columnNo)!=1 || gs.SelectedColumns[se.id] || igtbl_getSelectTypeColumn(gn,bandNo)<2))
if(column.AllowGroupBy==1 && gs.ViewType==2 && gs.GroupByBox.Element || column.Band.AllowColumnMoving>1)
{
if(se.getAttribute("justClicked"))
{
if(typeof(igtbl_headerDragStart)!="undefined")
igtbl_headerDragStart(gn,se,evnt);
}
else
igtbl_changeStyle(gn,se,null);
}
}
}
else
{
var te=gs.Element;
te.removeAttribute("elementMode");
te.removeAttribute("resizeColumn");
te.removeAttribute("selectMethod");
if(!te.getAttribute("shiftSelect"))
te.removeAttribute("startColumn");
if(se.cellIndex>=column.Band.firstActiveCell && igtbl_getOffsetX(evnt,se)>igtbl_clientWidth(se)-4 && igtbl_getAllowColSizing(gn,bandNo,columnNo)==2)
{
var cursorName = se.getAttribute("oldCursor");
if(cursorName == null)
se.setAttribute("oldCursor", se.style.cursor);
se.style.cursor="w-resize";
}
else if(se.cellIndex>=column.Band.firstActiveCell)
{
var cursorName = se.getAttribute("oldCursor");
if(cursorName != null)
{
se.style.cursor=cursorName;
se.removeAttribute("oldCursor");
}
}
}
if(se.getAttribute("justClicked"))
se.removeAttribute("justClicked");
evnt.cancelBubble=true;
evnt.returnValue=false;
return true;
}
else if(se.tagName == "DIV" && se.getAttribute("groupInfo"))
{
var groupInfo=se.getAttribute("groupInfo").split(":");
if(groupInfo[0]!="band")
{
if(igtbl_button(gn,evnt)==0)
{
var cursorName = se.getAttribute("oldCursor");
if(cursorName != null)
{
se.style.cursor=cursorName;
se.removeAttribute("oldCursor");
}
igtbl_changeStyle(gn,se,null);
if(gs.ViewType==2 && se.getAttribute("justClicked") && typeof(igtbl_headerDragStart)!="undefined")
igtbl_headerDragStart(gn,se,evnt);
}
}
if(se.getAttribute("justClicked"))
se.removeAttribute("justClicked");
return true;
}
return false;
}
function igtbl_tableMouseMove(evnt,gn)
{
var gs=igtbl_getGridById(gn);
var se=igtbl_srcElement(evnt);
if(!gs || !se)
return false;
var te=gs.Element;
if(igtbl_button(gn,evnt)==0 && te.getAttribute("elementMode")=="resize")
{
if((se.id==gn+"_div" || se.id==gn+"_hdiv" || se.tagName=="TABLE" && se.parentNode.parentNode.getAttribute("hiddenRow") || se.tagName=="TD" && se.parentNode.getAttribute("hiddenRow")) && te.getAttribute("resizeColumn"))
{
if(typeof(te.parentNode.oldCursor)!="string")
{
te.parentNode.oldCursor=te.parentNode.style.cursor;
te.parentNode.style.cursor="w-resize";
if(gs.StatHeader)
gs.StatHeader.Element.parentNode.parentNode.style.cursor="w-resize";
}
var column=te.getAttribute("resizeColumn");
var resCol=igtbl_getElementById(column);
var cg=se.childNodes[0];
if(se.id==gn+"_div" || se.tagName=="TD")
cg=cg.childNodes[0];
else if(se.id==gn+"_hdiv")
cg=cg.childNodes[0].childNodes[0];
if(!cg)
return false;
var co=cg.childNodes[resCol.cellIndex];
var c1w=evnt.clientX-igtbl_getLeftPos(resCol);
igtbl_resizeColumn(gn,resCol.id,c1w);
if(evnt.cancelBubble)
evnt.cancelBubble=true;
if(evnt.returnValue)
evnt.returnValue=false;
return false;
}
else if(te.getAttribute("resizeRow") && (se.id==gn+"_div" || se.tagName=="TH" && se.parentNode.parentNode.tagName=="TFOOT" || se.tagName=="TD" && se.parentNode.getAttribute("hiddenRow")))
{
if(typeof(te.parentNode.oldCursor)!="string")
{
te.oldCursor=te.style.cursor;
te.style.cursor="n-resize";
}
var rowId=te.getAttribute("resizeRow");
var row=igtbl_getElementById(rowId);
if(!row || row.getAttribute("hiddenRow"))
return;
var r1h=row.offsetHeight+(evnt.clientY-(igtbl_getTopPos(row)+row.offsetHeight));
igtbl_resizeRow(gn,rowId,r1h);
if(evnt.cancelBubble)
evnt.cancelBubble=true;
if(evnt.returnValue)
evnt.returnValue=false;
return false;
}
}
else if(typeof(te.parentNode.oldCursor)=="string")
{
te.parentNode.style.cursor=te.parentNode.oldCursor;
if(gs.StatHeader)
gs.StatHeader.Element.parentNode.parentNode.style.cursor=te.parentNode.oldCursor;
te.parentNode.oldCursor=null;
}
}
function igtbl_tableMouseUp(evnt,gn)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return false;
var se=igtbl_srcElement(evnt);
if(se.id==gn+"_div" && gs.Element.getAttribute("elementMode")=="resize")
{
gs.Element.removeAttribute("elementMode");
gs.Element.removeAttribute("resizeColumn");
}
}
function igtbl_resizeColumn(gn,colId,width)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return false;
var col=igtbl_getColumnById(colId);
if(!col)
return false;
return col.setWidth(width);
}
function igtbl_selectColumnRegion(gn,se)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return;
var te=gs.Element;
var lastSelectedColumn=te.getAttribute("lastSelectedColumn");
var selMethod=te.getAttribute("selectMethod");
if(selMethod=="column" && se.id!=lastSelectedColumn)
{
var startColumn=igtbl_getColumnById(te.getAttribute("startColumn"));
if(startColumn==null)
startColumn=igtbl_getColumnById(se.id);
var endColumn=igtbl_getColumnById(se.id);
if(igtbl_getSelectTypeColumn(gn,se.parentNode.parentNode.parentNode.getAttribute("bandNo"))==3)
gs.selectColRegion(startColumn,endColumn);
else
{
igtbl_clearSelectionAll(gn);
igtbl_selectColumn(gn,se.id);
}
gs.Element.setAttribute("lastSelectedColumn",se.id);
}
}
function igtbl_resizeRow(gn,rowId,height)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return;
var row=igtbl_getRowById(rowId);
if(!row)
return;
if(height>0)
{
var cancel=false;
if(igtbl_fireEvent(gn,gs.Events.BeforeRowSizeChange,"(\""+gn+"\",\""+row.Element.id+"\","+height+")")==true)
cancel=true;
if(!cancel)
{
var rowLabel=null;
if(!row.GroupByRow && igtbl_getRowSelectors(gn,row.Band.Index)!=2)
rowLabel=row.Element.cells[row.Band.firstActiveCell-1];
row.Element.style.height=height;
gs.removeChange("ResizedRows",row);
gs.recordChange("ResizedRows",row,height);
if(rowLabel)
rowLabel.style.height=height;
if(gs.UseFixedHeaders)
{
var i=0;
while(i<row.Band.Columns.length && row.Band.Columns[i].getFixed()) i++;
while(i<row.Band.Columns.length)
{
var column=row.Band.Columns[i];
if(column.hasCells())
{
var cell=row.getCellByColumn(column);
cell.getElement().style.height=height;
}
i++;
}
}
gs.alignGrid();
igtbl_fireEvent(gn,gs.Events.AfterRowSizeChange,"(\""+gn+"\",\""+row.Element.id+"\","+height+")");
}
}
}
function igtbl_cellClickDown(evnt,gn)
{
var gs=igtbl_getGridById(gn);
if(!gs)
return;
igtbl_lastActiveGrid=gn;
gs.Element.setAttribute("mouseDown","1");
var se=igtbl_srcElement(evnt);
if(se.id==gn+"_vl" || se.id==gn+"_tb" || se.id==gn+"_ta")
return;
var sel=igtbl_getElementById(gn+"_vl");
if(sel && sel.style.display=="" && sel.getAttribute("noOnBlur"))
return igtbl_cancelEvent(evnt);
while(se && (se.tagName!="TD" || se.id.length<gn.length || se.id.substr(0,gn.length)!=gn))
se=se.parentNode;
if(!se)
return;
if(se.tagName == "TD")
{
var row;
var id=se.id;
var cell=igtbl_getCellById(id);
if(cell)
{
row=cell.Row;
id=cell.Element.id;
}
else row=igtbl_getRowById(id);
if(!row && !cell) return;
var fac=row.Band.firstActiveCell;
if(igtbl_fireEvent(gn,gs.Events.MouseDown,"(\""+gn+"\",\""+id+"\","+igtbl_button(gn,evnt)+")")==true)
{
evnt.cancelBubble=true;
return true;
}
var band=row.Band;
var bandNo=band.Index;
if(igtbl_button(gn,evnt)==0 && se.cellIndex==fac-1 && igtbl_getOffsetY(evnt,se)>igtbl_clientHeight(se)-4 && igtbl_getRowSizing(gn,bandNo,se.parentNode)==2 && !se.getAttribute("groupRow"))
{
gs.Element.setAttribute("elementMode", "resize");
gs.Element.setAttribute("resizeRow", se.parentNode.id);
se.parentNode.style.height=se.parentNode.offsetHeight;
}
else if(se.cellIndex>=fac-1 || se.getAttribute("groupRow"))
{
var te=gs.Element;
var workTableId;
if(se.getAttribute("groupRow"))
workTableId=se.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.id;
else
workTableId=se.parentNode.parentNode.parentNode.id;
if(igtbl_button(gn,evnt)!=0)
return;
if(workTableId=="")
return;
if(!se.getAttribute("groupRow") && se.cellIndex==fac-1 && se.parentNode.cells[fac].childNodes.length>0 && se.parentNode.cells[fac].childNodes[0].tagName=="TABLE")
return;
te.removeAttribute("lastSelectedCell");
var prevSelRow=gs.SelectedRows[igtbl_getWorkRow(se.parentNode).id];
if(prevSelRow && igtbl_getLength(gs.SelectedRows)>1)
prevSelRow=false;
var selPresent=igtbl_getLength(gs.SelectedRows)>0 || igtbl_getLength(gs.SelectedCells)>0 || igtbl_getLength(gs.SelectedCols)>0;
if(se.getAttribute("groupRow") || se.cellIndex==fac-1 || igtbl_getCellClickAction(gn,bandNo)==2)
{
if(!(igtbl_getSelectTypeRow(gn,bandNo)==3 && evnt.ctrlKey) && !(row.getSelected() && igtbl_getLength(gs.SelectedRows)==1))
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -