目前做一个制造业的ERP,要处理一个Bom,里面的阶数和节点数未知。
就是一棵复杂一点的客户端树(能与服务端交互),问了几个朋友,都爱莫能助,只好自己写了。
比较乱,不知道是否说清楚了,但愿能给你一点点的帮助。
一、环境 .net1.1 + javascript
二、关键字:树 Bom  Bom树 javascript树
三、主要功能:
1、框架是左边树右边内容,两边要可以交互,即点击左边节点右边要能显示内容,右边内容保存或删除或建子节点要即时的更新左边的树。
2、树是一层一层打开的,所有的树的HTML都是有代码生成,可以无限节点,无限阶数(当然速度有影响)。
3、第一次打开读数据库,第二次要显示的时候就不必读数据库,第二次显示只是改变visible。
四、主要代码
1、javascript部分(主树)  RemoteBigServer.js

一棵树 Bom树/*------------------------------------下面是树的操作----------------------------------------*/
一棵树 Bom树
一棵树 Bom树
var m_MaginWith = 14;
一棵树 Bom树
var m_ImageWith = 9;
一棵树 Bom树
var m_UrlPkid = "BomContentMaterial.aspx?PKID=";
一棵树 Bom树
var m_UrlMat = "BomContentProduct.aspx?MaterialNo=";
一棵树 Bom树
var m_UrlRemote = "../CommonPage/BomServer.asmx";
一棵树 Bom树
var m_ContentPre = "Content";
一棵树 Bom树
var m_ImgPre = "Img";
一棵树 Bom树
var m_ContentFormTag = "main";
一棵树 Bom树
var m_iamgeSpace = "../Images/treeicon/space.gif";
一棵树 Bom树
var m_iamgeMinus = "../Images/treeicon/minus.gif";
一棵树 Bom树
var m_iamgePlus = "../Images/treeicon/plus.gif";
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
//other root use pkid as mark
一棵树 Bom树//
e.g. :divPKID + pkid   ; content + pkid ; img + pkid
一棵树 Bom树
function OnTurnIt()
一棵树 Bom树{
一棵树 Bom树    
var DivCurrent = event.srcElement.parentElement;    
一棵树 Bom树    
if (DivCurrent.tagName == 'TD')
一棵树 Bom树        DivCurrent 
= event.srcElement;
一棵树 Bom树        
一棵树 Bom树    
var strPKID = DivCurrent.id.substring(7);    
一棵树 Bom树    
一棵树 Bom树    
var objContent = document.getElementById(m_ContentPre + strPKID);
一棵树 Bom树    
var objDivContent = document.getElementById("divContent" + strPKID);
一棵树 Bom树    
var objImage = document.getElementById(m_ImgPre + strPKID);
一棵树 Bom树    
if (objContent == null)
一棵树 Bom树    {
一棵树 Bom树    
一棵树 Bom树        
var result = StartGetReomte(strPKID);
一棵树 Bom树        
//if No Detail  Return  NoData 
一棵树 Bom树
        var divObj = document.getElementById("divContent" + strPKID);
一棵树 Bom树        
if (result == null || result == "" || result == "nodata" )
一棵树 Bom树        {
一棵树 Bom树            
//if clear, has a space
一棵树 Bom树
            //divObj.innerHTML = "";   
一棵树 Bom树
            return ;
一棵树 Bom树        }
一棵树 Bom树        
一棵树 Bom树        
var strHTML = CombineHTML(result,strPKID);        
一棵树 Bom树        
一棵树 Bom树        
一棵树 Bom树        divObj.innerHTML 
= strHTML;
一棵树 Bom树            
一棵树 Bom树    
//    DivCurrent.insertAdjacentHTML( "afterEnd", strHTML);  
一棵树 Bom树
        
一棵树 Bom树        objImage.src
= m_iamgeMinus;
一棵树 Bom树        
一棵树 Bom树    }
一棵树 Bom树    
else
一棵树 Bom树    {
一棵树 Bom树        
if (objContent.style.display=="none"
一棵树 Bom树        {
一棵树 Bom树            objDivContent.style.display
="";
一棵树 Bom树            objContent.style.display
="";
一棵树 Bom树            objImage.src
= m_iamgeMinus;
一棵树 Bom树        }
一棵树 Bom树        
else
一棵树 Bom树        {
一棵树 Bom树            objDivContent.style.display
="none"
一棵树 Bom树            objContent.style.display
="none"
一棵树 Bom树            objImage.src
= m_iamgePlus;
一棵树 Bom树        }
一棵树 Bom树    }
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
function StartGetReomte(strPKID)
一棵树 Bom树{
一棵树 Bom树    
var SoapBody = "<strPKID>"+ strPKID + "</strPKID>";
一棵树 Bom树    
var MethodName = "GetBomDetailByPKID";
一棵树 Bom树    
var result = RemoteRun(m_UrlRemote, MethodName, SoapBody);
一棵树 Bom树    
一棵树 Bom树    
return result;
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
//Fill
一棵树 Bom树
function CombineHTML(result,strParentpkid)
一棵树 Bom树{
一棵树 Bom树    
var strBlockHtml = "";
一棵树 Bom树    
var strExPrefix = "<table width='100%' border='0' id='" + m_ContentPre + strParentpkid + "'><tr><td width='"+ m_MaginWith 
一棵树 Bom树                        
+ "'></td><td><table width='100%' border='0'>"                    
一棵树 Bom树    
var strExSuffix = "</table></td></tr></table>";
一棵树 Bom树    
一棵树 Bom树    
var objRow = result.split('|');
一棵树 Bom树    
if (objRow.length <= 0)
一棵树 Bom树    {
一棵树 Bom树        
return;
一棵树 Bom树    }
一棵树 Bom树            
一棵树 Bom树    
for(var i = 0 ;i <objRow.length ; i++)
一棵树 Bom树    {
一棵树 Bom树        
if (objRow[i] == "")
一棵树 Bom树        {
一棵树 Bom树            
continue;
一棵树 Bom树        }
一棵树 Bom树        
一棵树 Bom树        
var objcolumn = objRow[i].split(',');
一棵树 Bom树        
一棵树 Bom树        
if (objcolumn.length != 3)
一棵树 Bom树        {
一棵树 Bom树            
continue;
一棵树 Bom树        }
一棵树 Bom树        
一棵树 Bom树        
//objRow Has Three Value: PKID ,MaterialNo    , HasChild
一棵树 Bom树
        var strDetailPKID        = objcolumn[0];
一棵树 Bom树        
var MaterialNo            = objcolumn[1];
一棵树 Bom树        
var hasChild            = objcolumn[2];
一棵树 Bom树        
一棵树 Bom树        
var imageSrc = m_iamgePlus;
一棵树 Bom树        
if (hasChild==0)
一棵树 Bom树        {
一棵树 Bom树            imageSrc 
= m_iamgeSpace;
一棵树 Bom树        }
一棵树 Bom树                
一棵树 Bom树        
var contentPre = "<tr><td><div style='CURSOR: hand'id='divPKID"+ strDetailPKID +"' onmouseup=OnTurnIt();>";
一棵树 Bom树        
var contentSuf = "</div><div id='divContent"  + strDetailPKID + "'></div></td></tr>"
一棵树 Bom树        
一棵树 Bom树        
var content = "<IMG id='" + m_ImgPre + strDetailPKID + "' width=" + m_ImageWith + " src='" + imageSrc + "'><A href='" + m_UrlPkid + strDetailPKID + "' target='" + m_ContentFormTag + "'>" + MaterialNo + "</A>";
一棵树 Bom树
一棵树 Bom树        strBlockHtml 
+= contentPre + content + contentSuf;
一棵树 Bom树        
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
if (strBlockHtml != "")
一棵树 Bom树    {
一棵树 Bom树        strBlockHtml 
= strExPrefix + strBlockHtml + strExSuffix;
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
return strBlockHtml;
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
function RemoteRun(page, Method, SoapBody)
一棵树 Bom树{
一棵树 Bom树    
var url = page + "?methodname=" + Method;
一棵树 Bom树    
var xmlhttp,dom,node,xmlDOC;
一棵树 Bom树    
一棵树 Bom树    
var SoapHead = "<?xml version='1.0' encoding='utf-8'?>" +
一棵树 Bom树                    
"<soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><" + Method + " xmlns='http://localhost'>";
一棵树 Bom树    
var SoapTail = "</" + Method + "></soap:Body></soap:Envelope>";
一棵树 Bom树
一棵树 Bom树    
var SoapRequest = SoapHead + SoapBody + SoapTail;
一棵树 Bom树    
一棵树 Bom树    xmlhttp 
= new ActiveXObject("Msxml2.XMLHTTP");
一棵树 Bom树    xmlhttp.Open(
"POST",url,false);
一棵树 Bom树    xmlhttp.setRequestHeader(
"Content-Type""text/xml;charset=utf-8");
一棵树 Bom树    xmlhttp.setRequestHeader(
"SOAPAction""http://localhost/"+Method);
一棵树 Bom树    xmlhttp.setRequestHeader(
"Content-Length",SoapRequest.length);
一棵树 Bom树    xmlhttp.Send(SoapRequest);
一棵树 Bom树    
一棵树 Bom树    
if( xmlhttp.Status == 200 )
一棵树 Bom树    {
一棵树 Bom树        
var result = xmlhttp.responseXML.getElementsByTagName(Method + "Result");
一棵树 Bom树        
if(result)
一棵树 Bom树        {
一棵树 Bom树            
return result(0).text;
一棵树 Bom树        }
一棵树 Bom树    }
一棵树 Bom树
一棵树 Bom树    
return "fail,check network!";
一棵树 Bom树}
一棵树 Bom树
//other root tree
一棵树 Bom树/*
------------------------------------上面是树的操作----------------------------------------*/
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
//first root use materialno as mark
一棵树 Bom树//
e.g. :div + materialNo   ; content + materialNo ; img + materialNo
一棵树 Bom树
function OnProductTurnIt()
一棵树 Bom树{
一棵树 Bom树    
var DivCurrent = event.srcElement.parentElement;    
一棵树 Bom树    
if (DivCurrent.tagName == 'TD')  //如果指向了上一级,就指回来
一棵树 Bom树
        DivCurrent = event.srcElement;
一棵树 Bom树        
一棵树 Bom树    
var strMaterialNo = DivCurrent.id.substring(6);    
一棵树 Bom树    
var strMatVersion = document.getElementById("txtVersion").value;
一棵树 Bom树    
一棵树 Bom树    
if (strMaterialNo == "")
一棵树 Bom树        
return;
一棵树 Bom树    
一棵树 Bom树    
var objContent = document.getElementById(m_ContentPre + strMaterialNo);
一棵树 Bom树    
var objImage = document.getElementById(m_ImgPre + strMaterialNo);
一棵树 Bom树    
if (objContent == null)
一棵树 Bom树    {    
一棵树 Bom树        
var result = StartGetReomteByMat(strMaterialNo,strMatVersion);
一棵树 Bom树        
//if No Detail  Return  NoData 
一棵树 Bom树
        
一棵树 Bom树        
var divObj = document.getElementById("divContent" + strMaterialNo);
一棵树 Bom树        
if (result == null || result == "" || result == "nodata" )
一棵树 Bom树        {
一棵树 Bom树            
//divObj.innerHTML = "";
一棵树 Bom树
            return ;
一棵树 Bom树        }
一棵树 Bom树        
/**/
一棵树 Bom树        
一棵树 Bom树        
var strHTML = CombineHTML(result,strMaterialNo);    
一棵树 Bom树        
一棵树 Bom树        
一棵树 Bom树        divObj.innerHTML 
= strHTML;        
一棵树 Bom树    
//    DivCurrent.insertAdjacentHTML( "afterEnd", strHTML);  
一棵树 Bom树
        
一棵树 Bom树        objImage.src
= m_iamgeMinus;
一棵树 Bom树        
一棵树 Bom树    }
一棵树 Bom树    
else
一棵树 Bom树    {
一棵树 Bom树        
if (objContent.style.display=="none"
一棵树 Bom树        {
一棵树 Bom树            objContent.style.display
="";
一棵树 Bom树            objImage.src
= m_iamgeMinus;
一棵树 Bom树        }
一棵树 Bom树        
else
一棵树 Bom树        {
一棵树 Bom树            objContent.style.display
="none"
一棵树 Bom树            objImage.src
= m_iamgePlus;
一棵树 Bom树        }
一棵树 Bom树    }    
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
function StartGetReomteByMat(strMaterialNo,strMatVersion)
一棵树 Bom树{
一棵树 Bom树    
var sRet = "";
一棵树 Bom树    
一棵树 Bom树    
//if no version ,there is no info ,so return empty;
一棵树 Bom树
    if (strMatVersion == "")
一棵树 Bom树        
return sRet;
一棵树 Bom树        
一棵树 Bom树    
var SoapBody = "<MaterialNo>"+ strMaterialNo + "</MaterialNo>" + "<MatVersion>"+ strMatVersion + "</MatVersion>"
一棵树 Bom树
一棵树 Bom树    
var MethodName = "StartGetReomteByMat";
一棵树 Bom树    sRet  
= RemoteRun(m_UrlRemote, MethodName, SoapBody);
一棵树 Bom树    
一棵树 Bom树    
return sRet;
一棵树 Bom树}
一棵树 Bom树
// above is first root
一棵树 Bom树/*
------------------------------------上面是树的操作----------------------------------------*/
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
/*------------------------------------下面是弹出窗口和查询的操作的操作----------------------------------------*/
一棵树 Bom树
一棵树 Bom树
var Argobj;
一棵树 Bom树
var m_urlPopupMat = '../CommonPage/PopupGetMaterial.aspx?MaterialNo=';
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
function GetMatNoAndDoQuery()
一棵树 Bom树{
一棵树 Bom树    getMatAndVerFromPopUpWin();
一棵树 Bom树        
一棵树 Bom树    DoSetFirstRoot(Argobj.MaterialNo,Argobj.MatVersion);    
一棵树 Bom树    
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
function getMatAndVerFromPopUpWin()
一棵树 Bom树{    
一棵树 Bom树    Argobj 
= new Object();
一棵树 Bom树
一棵树 Bom树    
var txtmaterialno = document.getElementById("txtMaterialNo");
一棵树 Bom树    
var strMatNo = txtmaterialno.value;
一棵树 Bom树    
一棵树 Bom树    
var sDlgPath = m_urlPopupMat + strMatNo ;
一棵树 Bom树    
var sFeatures = 'dialogHeight: 400px; dialogWidth: 320px;scroll:no;help:No;edge:sunken; center:yes; status: No;';
一棵树 Bom树
一棵树 Bom树    window.showModalDialog(sDlgPath,Argobj,sFeatures);    
一棵树 Bom树    
一棵树 Bom树    
if (Argobj != null && Argobj.MaterialNo != null && Argobj.MaterialNo != "")
一棵树 Bom树    {
一棵树 Bom树        document.getElementById(
"txtMaterialNo").value =Argobj.MaterialNo;
一棵树 Bom树        document.getElementById(
"txtVersion").value   =Argobj.MatVersion;
一棵树 Bom树    }    
一棵树 Bom树    
else
一棵树 Bom树    {
一棵树 Bom树        Argobj.MaterialNo 
= "";
一棵树 Bom树        Argobj.MatVersion 
= "";
一棵树 Bom树    }    
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
function DoSetFirstRoot(strMaterialNo,strMatVersion)
一棵树 Bom树{
一棵树 Bom树    
if (strMaterialNo == "")
一棵树 Bom树    {
一棵树 Bom树        
return;
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
var txtproduct = document.getElementById("txtproduct");    
一棵树 Bom树    
一棵树 Bom树    
var contentPre = "<div style='CURSOR: hand'id='divMat"+ strMaterialNo +"' onmouseup=OnProductTurnIt();>";
一棵树 Bom树    
var contentSuf = "</div><div id='divContent" + strMaterialNo + "'></div>";
一棵树 Bom树    
var content = "<IMG id='" + m_ImgPre + strMaterialNo + "' width=" + m_ImageWith + " src='" + m_iamgeSpace + "'><A href='" + m_UrlMat + strMaterialNo   + "&BomVersion=" +  strMatVersion + "' target='" + m_ContentFormTag + "'>" + strMaterialNo + "</A>";
一棵树 Bom树    
一棵树 Bom树    
var strProductHtml = contentPre + content + contentSuf;
一棵树 Bom树        
一棵树 Bom树    txtproduct.innerHTML 
=  strProductHtml;    
一棵树 Bom树    
一棵树 Bom树    
//update bomConent
一棵树 Bom树
    //document.parentWindow.parent.frames.item(1).location.replace(m_UrlMat + strMaterialNo + "&BomVersion=" +  strMatVersion);
一棵树 Bom树

一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
/*------------------------------------上面是弹出窗口和查询的操作的操作----------------------------------------*/
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
/*-----------------------------Begin-------敲回车的四种显示状态----------------Begin------------------------*/
一棵树 Bom树
一棵树 Bom树
//4status , hasMaterialNo(show) ,Has1Bom(show) ,HasManyBom(popup), NoMaterialNo(popup)
一棵树 Bom树

一棵树 Bom树
function MatKey13Down()
一棵树 Bom树{
一棵树 Bom树    
if(event.keyCode != 13)
一棵树 Bom树    {        
一棵树 Bom树        
return;
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
var txtMaterialNo = event.srcElement;    
一棵树 Bom树    
var strMaterialNo = txtMaterialNo.value;    
一棵树 Bom树    
var strMatVersion = getDefaultMatVersion(strMaterialNo);    
一棵树 Bom树    
一棵树 Bom树    
var strRetValue = DoGetMatVersion(strMaterialNo);
一棵树 Bom树    
if (strRetValue == "")
一棵树 Bom树    {
一棵树 Bom树        GetMatNoAndDoQuery();
一棵树 Bom树        
return;
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
var iverCounts = -1;
一棵树 Bom树    
var iMatCounts = -1;
一棵树 Bom树    
var strRets = strRetValue.split('|_|');
一棵树 Bom树    
if (strRets.length > 1)
一棵树 Bom树    {
一棵树 Bom树        iMatCounts 
= strRets[0];
一棵树 Bom树        iverCounts 
= strRets[1];
一棵树 Bom树        strMatVersion 
= strRets[2];        
一棵树 Bom树        
if (strMatVersion != '')
一棵树 Bom树            document.getElementById(
"txtVersion").value = strMatVersion;
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
// NoMaterialNo(popup)
一棵树 Bom树
    if (iMatCounts == 0 || iverCounts > 1)
一棵树 Bom树    {
一棵树 Bom树        GetMatNoAndDoQuery();
一棵树 Bom树    }
一棵树 Bom树    
else if (iverCounts == 1)
一棵树 Bom树    {
一棵树 Bom树        DoSetFirstRoot(strMaterialNo,strMatVersion);
一棵树 Bom树    }
一棵树 Bom树    
else if (iMatCounts == 1 && iverCounts == 0)
一棵树 Bom树    {
一棵树 Bom树        strMatVersion 
= document.getElementById("txtVersion").value;
一棵树 Bom树        DoSetFirstRoot(strMaterialNo,strMatVersion);        
一棵树 Bom树    }
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
//set Default MatVersion by script
一棵树 Bom树
function getDefaultMatVersion(strMaterialNo)
一棵树 Bom树{
一棵树 Bom树    
var strMatVersion = "";
一棵树 Bom树    
var SoapBody = "<MaterialNo>"+ strMaterialNo + "</MaterialNo>";
一棵树 Bom树    
一棵树 Bom树    
var MethodName = "getDefaultVersion";
一棵树 Bom树    strMatVersion 
= RemoteRun(m_UrlRemote, MethodName,SoapBody);
一棵树 Bom树    
一棵树 Bom树    document.getElementById(
"txtVersion").value = strMatVersion;
一棵树 Bom树    
一棵树 Bom树    
return strMatVersion;
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
function DoGetMatVersion(strMaterialNo)
一棵树 Bom树{
一棵树 Bom树    
var sRet = "";
一棵树 Bom树    
if (strMaterialNo == "")
一棵树 Bom树        
return sRet;
一棵树 Bom树        
一棵树 Bom树    
var SoapBody = "<MaterialNo>"+ strMaterialNo + "</MaterialNo>";
一棵树 Bom树
一棵树 Bom树    
var MethodName = "getVersionByMat";
一棵树 Bom树    sRet  
= RemoteRun(m_UrlRemote, MethodName, SoapBody);
一棵树 Bom树    
一棵树 Bom树    
return sRet;    
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
/*-----------------------------End-------敲回车的四种显示状态----------------End------------------------*/
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
/*----------------Begin-------右边 保存后的调用函数--------Begin--------------------*/
一棵树 Bom树
//other root use pkid as mark
一棵树 Bom树//
e.g. :div + pkid   ; content + pkid ; img + pkid
一棵树 Bom树
function OnTurnItAuto(strPKID)
一棵树 Bom树{
一棵树 Bom树    
var DivCurrent = document.getElementById('divPKID' + strPKID);
一棵树 Bom树    
var objContent = document.getElementById(m_ContentPre + strPKID);
一棵树 Bom树    
var objImage   = document.getElementById(m_ImgPre + strPKID);
一棵树 Bom树    
一棵树 Bom树
一棵树 Bom树    
var result = StartGetReomte(strPKID);
一棵树 Bom树    
//if No Detail  Return  NoData 
一棵树 Bom树
    var divObj = document.getElementById("divContent" + strPKID);
一棵树 Bom树    
if (result == null || result == "" || result == "nodata" )
一棵树 Bom树    {
一棵树 Bom树        divObj.innerHTML 
= "";
一棵树 Bom树        
return ;
一棵树 Bom树    }
一棵树 Bom树    
一棵树 Bom树    
var strHTML = CombineHTML(result,strPKID);            
一棵树 Bom树    
一棵树 Bom树    
一棵树 Bom树    divObj.innerHTML 
= strHTML;
一棵树 Bom树    
一棵树 Bom树    
一棵树 Bom树    
//show
一棵树 Bom树
    //divObj.style.display="";
一棵树 Bom树
    //document.getElementById(m_ContentPre + strPKID).style.display="";
一棵树 Bom树
    
一棵树 Bom树    
//DivCurrent.insertAdjacentHTML( "afterEnd", strHTML);  
一棵树 Bom树
    
一棵树 Bom树    objImage.src
= m_iamgeMinus;
一棵树 Bom树
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
//first root
一棵树 Bom树
function OnProductTurnItAuto(strMaterialNo)
一棵树 Bom树{
一棵树 Bom树    
if (strMaterialNo == "")
一棵树 Bom树        
return;
一棵树 Bom树
一棵树 Bom树    
var DivCurrent = document.getElementById('divMat' + strMaterialNo);        
一棵树 Bom树    
var strMatVersion = document.getElementById("txtVersion").value;
一棵树 Bom树    
一棵树 Bom树    
一棵树 Bom树    
var objContent = document.getElementById(m_ContentPre + strMaterialNo);
一棵树 Bom树    
var objImage = document.getElementById(m_ImgPre + strMaterialNo);
一棵树 Bom树
一棵树 Bom树    
var result = StartGetReomteByMat(strMaterialNo,strMatVersion);
一棵树 Bom树    
//if No Detail  Return  NoData 
一棵树 Bom树
    
一棵树 Bom树    
var divObj = document.getElementById("divContent" + strMaterialNo);
一棵树 Bom树    
if (result == null || result == "" || result == "nodata" )
一棵树 Bom树    {
一棵树 Bom树        divObj.innerHTML 
= "";
一棵树 Bom树        
return ;
一棵树 Bom树    }
一棵树 Bom树    
/**/
一棵树 Bom树    
一棵树 Bom树    
var strHTML = CombineHTML(result,strMaterialNo);    
一棵树 Bom树    
一棵树 Bom树    
一棵树 Bom树    
//show
一棵树 Bom树
    //divObj.style.display="";
一棵树 Bom树
    //document.getElementById(m_ContentPre + strMaterialNo).style.display="";
一棵树 Bom树
    
一棵树 Bom树    divObj.innerHTML 
= strHTML;
一棵树 Bom树            
一棵树 Bom树
//    DivCurrent.insertAdjacentHTML( "afterEnd", strHTML);  
一棵树 Bom树
    
一棵树 Bom树    objImage.src
= m_iamgeMinus;
一棵树 Bom树
一棵树 Bom树    
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
一棵树 Bom树
function FlushLeftByRightSave()
一棵树 Bom树{
一棵树 Bom树    
var strRetValue = document.getElementById("txtCurrenSaveValue").value;
一棵树 Bom树    
一棵树 Bom树    
var strRes = strRetValue.split('|_|');
一棵树 Bom树    
一棵树 Bom树    
if (strRes.length == 2)
一棵树 Bom树    {
一棵树 Bom树        
var strValue  = strRes[0];
一棵树 Bom树        
var status  = strRes[1];
一棵树 Bom树                
一棵树 Bom树        
if (status == 1)  //1 express first root
一棵树 Bom树
        {
一棵树 Bom树            OnProductTurnItAuto(strValue);
一棵树 Bom树        }
一棵树 Bom树        
else if (status == 2)  //2 exress >2 root
一棵树 Bom树
        {
一棵树 Bom树            OnTurnItAuto(strValue);        
一棵树 Bom树        }        
一棵树 Bom树    }            
一棵树 Bom树}
一棵树 Bom树
一棵树 Bom树
/*----------------End-------右边 保存后的调用函数--------End--------------------*/


2、WebService部分 BomServer.asmx

一棵树 Bom树
一棵树 Bom树        
private int GetChildCount(string strMatNo,DataTable dtCount)
    


 3、右边保存或删除的交互部分
(1)子件物料的保存和删除通过此函数

一棵树 Bom树        private void RegisterFlushLeftTree()
        }

对应Javascript
一棵树 Bom树//now not completed
一棵树 Bom树
function OnFlushLeftTree(strValue)
}

(2)父件删除和保存的
一棵树 Bom树        private void SetLeftTreeBomVerSion(int intBomVersion)
        }

对应Javascript
一棵树 Bom树function OnSetLeftBomVersion(strBomVersion)
}

相关文章:

  • 2021-08-13
  • 2021-10-22
  • 2021-09-30
  • 2021-05-26
  • 2022-12-23
  • 2021-08-30
  • 2022-02-22
  • 2021-09-17
猜你喜欢
  • 2021-12-05
  • 2021-11-25
  • 2021-10-11
  • 2021-07-24
  • 2021-09-05
  • 2021-07-30
  • 2021-08-09
相关资源
相似解决方案