📄 ig_webtree.js
字号:
var action = node[1];
switch(action) {
case 0 :
this.update("SelectedNode", id);
break;
case 1 :
igtree_updateNodeToggle(this, id, true);
break;
case 2 :
igtree_updateNodeToggle(this, id, false);
break;
case 3 :
igtree_updateNodeCheck(this, id, true)
break;
case 4 :
igtree_updateNodeCheck(this, id, false)
break;
}
}
}
function igtree_loadcomplete() {
for(i=0; i<igtree_indexState.length; i++) {
var tree = igtree_indexState[i];
var eNode = ig_csom.getElementById(tree.scrollnodeId);
if(eNode) {
igtree_scrollToView(tree.Element,eNode)
}
}
}
// private - initializes the client-side events for the Tree object
function igtree_events(events)
{
this.AfterBeginNodeEdit=events[0];
this.AfterEndNodeEdit=events[1];
this.AfterNodeSelectionChange=events[2];
this.AfterNodeUpdate=events[3];
this.BeforeBeginNodeEdit=events[4];
this.BeforeEndNodeEdit=events[5];
this.BeforeNodeSelectionChange=events[6];
this.BeforeNodeUpdate=events[7];
this.NodeChecked=events[8];
this.EditKeyDown=events[9];
this.EditKeyUp=events[10];
this.InitializeTree=events[11];
this.KeyDown=events[12];
this.KeyUp=events[13];
this.NodeClick=events[14];
this.NodeCollapse=events[15];
this.NodeExpand=events[16];
this.DemandLoad=events[17];
this.Drag=events[18];
this.DragEnd=events[19];
this.DragEnter=events[20];
this.DragLeave=events[21];
this.DragOver=events[22];
this.DragStart=events[23];
this.Drop=events[24];
}
// private
function igtree_getNodeSpan(node)
{
if(!node)
return null;
var span=node.childNodes[node.childNodes.length-1];
while(span && span.tagName!="SPAN")
span=span.previousSibling;
return span;
}
function igtree_getSrcNodeElement(evnt,tn)
{
var src=igtree_getSrcElement(evnt);
var parent = src.parentNode;
while(parent != null) {
if(parent.id != null && parent.id.length > 0)
return src;
if(src.tagName=="IMG" && src.getAttribute("imgType")=="exp")
return src;
if(src.tagName=="IMG" && src.getAttribute("igimg")=="1")
return src;
if(src.tagName=="INPUT" || src.tagName=="SPAN")
return src;
src = parent;
parent = parent.parentNode;
}
return null;
}
function igtree_getNodeElement(src)
{
var parent = src;
while(parent) {
if(ig_csom.notEmpty(parent.id))
return parent;
parent = parent.parentNode;
}
return null;
}
function igtree_pageUnload(){
if(ig_csom.IsIE55Plus) {
ig_delete(igtree_treeState);
ig_delete(igtree_indexState);
}
}
if(typeof(ig_csom)!="undefined" && ig_csom.IsIE)
ig_csom.addEventListener(window, "unload", igtree_pageUnload, true);
// private - toggles the expansion state of a node.
function igtree_toggle(tn, nodeId)
{
var node=igtree_getNodeById(nodeId);
var s = igtree_getElementById("M_"+nodeId);
var ts=igtree_treeState[tn];
if(!node.getEnabled())
return;
if(!s && ts.LoadOnDemand>=1) {
node.setExpanded(true);
return;
}
if(s.style.display == "none") {
node.setExpanded(true);
}
else
node.setExpanded(false);
return;
}
// private - Implements the Collapse() method for the Node object
function igtree_collapseNode(node) {
var tn=node.getTreeId();
var ts=igtree_treeState[tn];
var s;
s = igtree_getElementById("M_"+node.element.id);
if(!s)
return;
var oNode = ts.getSelectedNode();
if(oNode != null && ts.Events.AfterNodeSelectionChange[1] == 0) {
var parent = oNode.getParent();
while(parent != null) {
if(parent.element.id == node.element.id)
node.setSelected(true);
parent = parent.getParent();
}
}
var button = igtree_getNodeExpandCollapseImage(ts, node);
if(!button)
return;
if(igtree_fireEvent(tn,ts.Events.NodeCollapse,"(\""+tn+"\",\""+node.element.id+"\")"))
return;
if(ts.NeedPostBack) {
if(ts._FreezeServerEvents==null)
{
ts.NeedPostBack=false;
__doPostBack(ts.UniqueId,node.element.id+":Collapse");
return;
}
}
if(ts.ClassicTree){
s.style.display = "none";
// [KV 10/28/2004, 12:44 PM] replace changed to use simple expression
// UWN945 - The plus minus images of ClassicTree do not change on expanding and collapsing
button.src = button.src.replace("minus.gif", "plus.gif");
// button.src = button.src.replace("ig_treefminus.gif", "ig_treefplus.gif");
// button.src = button.src.replace("ig_treemminus.gif", "ig_treemplus.gif");
// button.src = button.src.replace("ig_treelminus.gif", "ig_treelplus.gif");
// button.src = button.src.replace("ig_treeominus.gif", "ig_treeoplus.gif");
}
else{
image = ts.ExpandImage;
if(image == "")
image = "ig_treeplus.gif";
button.src = image;
s.style.display = "none";
}
igtree_updateNodeToggle(ts, s.id, false);
}
// Private - returns the expand image for a node
function igtree_getNodeExpandCollapseImage(tree, node) {
var index = 1;
var button
if(tree.ClassicTree) {
index = 0;
button=node.element.childNodes[0].childNodes[index];
}
else
button=node.element.childNodes[index];
if(button.tagName!="IMG" || button.getAttribute("imgType")!="exp"){
while (button!=null && (button.tagName!="IMG" || button.getAttribute("imgType")!="exp")) {
button=button.nextSibling;
}
if(button==null)
return;
}
return button;
}
// Private - Implements the Expand() method for the Node object
function igtree_expandNode(node) {
var tn=node.getTreeId();
var ts=igtree_treeState[tn];
var button = igtree_getNodeExpandCollapseImage(ts, node);
if(!button)
return;
var s;
s = igtree_getElementById("M_"+node.element.id);
if(!s) {
var ts=igtree_treeState[tn];
if(ts.LoadOnDemand>=1) {
igtree_updateNodeToggle(ts, "M_"+node.element.id, true);
if(igtree_fireEvent(tn,ts.Events.DemandLoad,"(\""+tn+"\",\""+node.element.id+"\")"))
return;
if(ts.NeedPostBack) {
__doPostBack(ts.UniqueId,node.element.id+":DemandLoad");
return;
}
}
return;
}
if(igtree_fireEvent(tn,ts.Events.NodeExpand,"(\""+tn+"\",\""+node.element.id+"\")"))
return;
if(ts.NeedPostBack){
ts.NeedPostBack=false;
__doPostBack(ts.UniqueId,node.element.id+":Expand");
return;
}
if(ts.SingleBranchExpand) {
ts._FreezeServerEvents = true;
var prev=node.getPrevSibling();
while(prev != null) {
prev.setExpanded(false);
prev=prev.getPrevSibling();
}
var next=node.getNextSibling();
while(next != null) {
next.setExpanded(false);
next=next.getNextSibling();
}
ts._FreezeServerEvents = null;
}
if(ts.ClassicTree){
s.style.display = "";
// [KV 10/28/2004, 12:44 PM] replace changed to use simple expression
// UWN945 - The plus minus images of ClassicTree do not change on expanding and collapsing
button.src = button.src.replace("plus.gif", "minus.gif");
// button.src = button.src.replace("ig_treefplus.gif", "ig_treefminus.gif");
// button.src = button.src.replace("ig_treemplus.gif", "ig_treemminus.gif");
// button.src = button.src.replace("ig_treelplus.gif", "ig_treelminus.gif");
// button.src = button.src.replace("ig_treeoplus.gif", "ig_treeominus.gif");
}
else{
image = ts.CollapseImage;
if(image == "")
image = "ig_treeminus.gif";
button.src = image;
s.style.display = "";
}
igtree_updateNodeToggle(ts, s.id, true);
}
// private - Handles checkbox clicking within the tree.
function igtree_checkboxClick(tn, nodeId, src)
{
var ts=igtree_treeState[tn];
var node=igtree_getNodeById(nodeId);
if(src.checked) {
if(igtree_fireEvent(tn,ts.Events.NodeChecked,"(\""+tn+"\",\""+nodeId+"\", true)")) {
src.checked = false;
return;
}
if(ts.NeedPostBack) {
__doPostBack(ts.UniqueId,nodeId+":Checked");
return;
}
igtree_updateNodeCheck(ts, nodeId, true);
}
else {
if(igtree_fireEvent(tn,ts.Events.NodeChecked,"(\""+tn+"\",\""+nodeId+"\", false)")) {
src.checked = true;
return;
}
if(ts.NeedPostBack) {
__doPostBack(ts.UniqueId,nodeId+":Unchecked");
return;
}
igtree_updateNodeCheck(ts, nodeId, false);
}
}
// private - Retrieves the resolved hover class for an item in the tree.
function igtree_getResolvedHoverClass(tn,node)
{
if(node.getAttribute("HoverClass"))
return node.getAttribute("HoverClass");
return igtree_treeState[tn].HoverClass;
}
// private - Handles the mouse over event for the tree.
function igtree_mouseover(evnt,tn)
{
if(!igtree_treeState[tn])
return;
var src=igtree_getSrcNodeElement(evnt,tn);
if(!src)
return;
if(src.tagName!="SPAN")
return;
var eNode = igtree_getNodeElement(src);
var tree=igtree_treeState[tn];
if(igtree_IE && tree.Element.clientWidth>0 && eNode.offsetWidth>tree.Element.clientWidth)
if(ig_csom.isEmpty(eNode.title)) {
src.title=src.innerText;
eNode.igtitle = true;
}
var node=igtree_getNodeById(eNode.id);
if(!node.getEnabled())
return;
if(eNode == igtree_selectedNode(tn))
return;
var className=igtree_getResolvedHoverClass(tn,eNode);
if(className=="" || src.className == className)
return;
var igtxt = src.getAttribute("igtxt");
if(igtxt!=null && igtxt.length>0) {
src.HovClass = src.className;
src.hoverSet = true;
src.className = className;
}
}
// private - Handles the mouse out event for the tree
function igtree_mouseout(evnt,tn)
{
if(!igtree_treeState[tn])
return;
var src=igtree_getSrcNodeElement(evnt,tn);
if(!src)
return;
if(src.tagName!="SPAN")
return;
var eNode = igtree_getNodeElement(src);
if(eNode.igtitle) {
src.title="";
eNode.igtitle = null;
}
var node=igtree_getNodeById(eNode.id);
if(!node.getEnabled())
return;
var igtxt = src.getAttribute("igtxt");
if(igtxt==null || igtxt.length==0) {
return;
}
if(eNode != igtree_selectedNode(tn)){
if(src.style != null) {
if(src.hoverSet) {
prevClass = src.HovClass;
if(prevClass == null)
prevClass = "";
src.className = prevClass;
src.hoverSet = null;
}
}
}
}
// private - Handles the right click event for the tree.
function igtree_contextmenu(evnt,tn)
{
if(!igtree_treeState[tn])
return;
var ts=igtree_treeState[tn];
var src=igtree_getSrcNodeElement(evnt,tn);
if(!src)
return;
if (src.tagName!="SPAN") return;
var eNode = igtree_getNodeElement(src);
ts.event = evnt;
if(igtree_fireEvent(tn,ts.Events.NodeClick,"(\""+tn+"\",\""+eNode.id+"\", 2)")) {
ig_cancelEvent(evnt);
return false;
}
ts.event = null;
}
// private - Retieves the resolved HiliteClass for a node in the tree.
function igtree_getResolvedHiliteClass(tn,src)
{
if(!src)
return "";
if(src.getAttribute("HiliteClass"))
return src.getAttribute("HiliteClass");
if(igtree_treeState[tn].HiliteClass!="")
return igtree_treeState[tn].HiliteClass;
return tn+"HiliteClass";
}
function igtree_navigate(tree, node) {
if(!node.getEnabled())
return;
if(!node.WebTree.Enabled)
return;
if(node.getTargetUrl()==null)
{
if(igtree_fireEvent(tree.Id,tree.Events.NodeClick,"(\""+tree.Id+"\",\""+node.Id+"\",1)"))
return;
if(tree.NeedPostBack)
{
igtree_postNodeClick(tree.Id,node.Id);
return;
}
}
if(ig_csom.notEmpty(node.getTargetUrl()) && !tree.RenderAnchors) //&&
ig_csom.navigateUrl(node.getTargetUrl(),node.getTargetFrame());
}
// private - Handles the click event for nodes
function igtree_nodeclick(evnt,tn)
{
if(!igtree_treeState[tn])
return;
var tree=igtree_treeState[tn];
var src=igtree_getSrcNodeElement(evnt,tn);
if(!src)
return;
if(!tree.Enabled)
return;
var eNode = igtree_getNodeElement(src);
var igtxt = src.getAttribute("igtxt")!=null && src.getAttribute("igtxt").length>0;
var igimg = src.getAttribute("igimg")!=null && src.getAttribute("igimg").length>0;
var igchk = src.getAttribute("igchk")!=null && src.getAttribute("igchk").length>0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -