利用AJAX+J2EE開發組織機構管理系統 3

來源:互聯網
上載者:User
3) 編寫樹拖動及選擇結點的方法

// myDragHandler實現樹結點拖動時重新指定父子關係。
function myDragHandler(idFrom,idTo){
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=moveOrg&orgId=" + idFrom + "&newparentOrgId=" + idTo, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send();
 retXml=xmlhttp.OrgponseText;

 return true;
}
// mySelectHandler實現選擇樹結點對系統的控制,同時顯示組織資訊及該組織下的人員。
function mySelectHandler(id){
 tbOrg.style.display="block";
 divOrgMemo.style.display="none";
 divOrgInfo.style.display="none";

 if(id==1)
 {
  divOrgMemo.style.display="block";
  div1.style.display="none";
  div2.style.display="none";
  div3.style.display="none";
  divContent.style.display="none";
  div5.style.display="none";
 }
 else
 {
  divOrgInfo.style.display="block";
  div1.style.display="block";
  div2.style.display="block";
  div3.style.display="block";
  divContent.style.display="block";
  div5.style.display="block";
 }
 CurrNodeId=id;
 //裝載組織資訊並顯示在編碼和名稱的文本控制項上。
 loadOrg(id);
 //裝載某組織下人員資訊
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=GetPerson&orgId=" + id, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send();

 retXml=xmlhttp.responseText;
 personDom.loadXML (retXml);
 //給人員資訊的每行加上序號
 for(var i=0; i<personDom.documentElement.childNodes.length; i++){
  personDom.documentElement.childNodes[i].setAttribute("seqNo", nextSeq);
  nextSeq++;
 }
 //人員資訊顯示在divContent上面
 divContent.innerHTML = personDom.transformNode(stylesheet);
};
//裝載組織資訊並顯示在編碼和名稱的文本控制項上。
function loadOrg(OrgId){
 if(OrgId == null){
  OrgId = OrgTree.getSelectedItemId();
 }
 if(OrgId == ""){
  tbOrg.style.display = "none";
  return;
 }
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=loadOrg&OrgId=" + OrgId, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send();
 retXml=xmlhttp.responseText;
 var OrgDoc = new ActiveXObject('Microsoft.XMLDOM');
 OrgDoc.async = false;
 OrgDoc.loadXML(retXml);
 if(OrgId != 1){
  txtCode.value = OrgDoc.selectSingleNode("//OrgCode").text;
  txtName.value = OrgDoc.selectSingleNode("//OrgName").text;
 }
 tbOrg.style.display = "block";
}

  4) 建立組織

  組織建立主要是通過調用XMLHTTP對象來實現。我們主要學會如何調用XMLHTTP。組織建立應該在後台實現,把組織資訊插入資料庫中。這裡我們通過JSP來實現。我們的Org.jsp 檔案中有個createOrg方法,該方法傳遞一個父ID。

function createOrg(parentOrgId){
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=createOrg&parentOrgId=" + parentOrgId, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send();
 retXml=xmlhttp.responseText;
 var orgId = (new Number(retXml)).toString();
 return orgId;
}

5) 刪除群組織

  組織刪除同樣是調用Org.jsp 檔案中的deleteOrg方法來實現,該方法傳遞所刪除的結點ID。

function deleteOrg(){
 var OrgId = OrgTree.getSelectedItemId();
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=deleteOrg&OrgId=" + OrgId, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send();
}

  6) 編輯組織

  組織修改是調用Org.jsp 檔案中的modifyOrg方法來實現,該方法傳遞所修改的結點ID。同時修改的資料通過自訂的XML格式的字串傳送,這時通過send字串來實現。修改前資料一律要驗證其合法性,並提示錯誤資訊。

function modifyOrg(){
 if(OrgTree.getSelectedItemId() == ""){
  return "N";
 }
 if(txtCode.value == ""){
  alert("請輸入編碼!");
  return "N";
 }
 if(txtName.value == ""){
  alert("請輸入名稱!");
  return"N";
 }
 var OrgId = OrgTree.getSelectedItemId();
 var OrgKind;
 //alert(txtType.options[txtType.selectedIndex].value)
 var strModify = "<?xml version='1.0' encoding='gb2312'?>" +
   "<data>" +
   "<OrgCode><![CDATA[" + txtCode.value + "]]></OrgCode>" +
   "<OrgName><![CDATA[" + txtName.value + "]]></OrgName>" +
   "<OrgKind><![CDATA[" + txtType.options[txtType.selectedIndex].value+ "]]></OrgKind>" +
   "</data>";
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=modifyOrg&OrgId=" + OrgId, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send(strModify);
 OrgTree.setItemText(OrgTree.getSelectedItemId(),txtName.value);
}

  3. 人員管理的實現

  人員可以增加、刪除、編輯。同時當選擇樹結點時應該把人員顯示出來供編輯、查看......

  1) 增加人員

  人員增加實現的原理是在personDom中加入結點peorsone,該結點相當於表的一行,設定屬性。同時在peorsone中不繼地加入其它結點,代表資料庫的欄位,且必須與XLT檔案的標號同名。這些結點相當該行的列。最後在表中插入一行,行上插入一列,並顯示之。

function addPerson(){
 var seqNo = nextSeq;
 nextSeq++;
 var peorsonNode = personDom.createNode("1", "peorsone","");
 peorsonNode.setAttribute("isNew", "Y");
 peorsonNode.setAttribute("isDelete", "N");
 peorsonNode.setAttribute("seqNo", seqNo);
 personDom.documentElement.appendChild(peorsonNode);
 var PersonId= personDom.createNode("1", "personId", "");
 peorsonNode.appendChild(PersonId);
 var personCode= personDom.createNode("1", "personCode", "");
 peorsonNode.appendChild(personCode);
 var PersonName= personDom.createNode("1", "personName", "");
 peorsonNode.appendChild(PersonName);
 var Sex= personDom.createNode("1", "sex", "");
 peorsonNode.appendChild(Sex);
 var tr = tbList.insertRow(tbList.rows.length);
 tr.setAttribute("seqNo", seqNo);
 var td = tr.insertCell(0);
 td.innerHTML = peorsonNode.transformNode(stylesheet);
}5) 刪除群組織

  組織刪除同樣是調用Org.jsp 檔案中的deleteOrg方法來實現,該方法傳遞所刪除的結點ID。

function deleteOrg(){
 var OrgId = OrgTree.getSelectedItemId();
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=deleteOrg&OrgId=" + OrgId, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send();
}

  6) 編輯組織

  組織修改是調用Org.jsp 檔案中的modifyOrg方法來實現,該方法傳遞所修改的結點ID。同時修改的資料通過自訂的XML格式的字串傳送,這時通過send字串來實現。修改前資料一律要驗證其合法性,並提示錯誤資訊。

function modifyOrg(){
 if(OrgTree.getSelectedItemId() == ""){
  return "N";
 }
 if(txtCode.value == ""){
  alert("請輸入編碼!");
  return "N";
 }
 if(txtName.value == ""){
  alert("請輸入名稱!");
  return"N";
 }
 var OrgId = OrgTree.getSelectedItemId();
 var OrgKind;
 //alert(txtType.options[txtType.selectedIndex].value)
 var strModify = "<?xml version='1.0' encoding='gb2312'?>" +
   "<data>" +
   "<OrgCode><![CDATA[" + txtCode.value + "]]></OrgCode>" +
   "<OrgName><![CDATA[" + txtName.value + "]]></OrgName>" +
   "<OrgKind><![CDATA[" + txtType.options[txtType.selectedIndex].value+ "]]></OrgKind>" +
   "</data>";
 var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
 xmlhttp.open("POST","Org.jsp?mode=modifyOrg&OrgId=" + OrgId, false);
 xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
 xmlhttp.send(strModify);
 OrgTree.setItemText(OrgTree.getSelectedItemId(),txtName.value);
}

  3. 人員管理的實現

  人員可以增加、刪除、編輯。同時當選擇樹結點時應該把人員顯示出來供編輯、查看......

  1) 增加人員

  人員增加實現的原理是在personDom中加入結點peorsone,該結點相當於表的一行,設定屬性。同時在peorsone中不繼地加入其它結點,代表資料庫的欄位,且必須與XLT檔案的標號同名。這些結點相當該行的列。最後在表中插入一行,行上插入一列,並顯示之。

function addPerson(){
 var seqNo = nextSeq;
 nextSeq++;
 var peorsonNode = personDom.createNode("1", "peorsone","");
 peorsonNode.setAttribute("isNew", "Y");
 peorsonNode.setAttribute("isDelete", "N");
 peorsonNode.setAttribute("seqNo", seqNo);
 personDom.documentElement.appendChild(peorsonNode);
 var PersonId= personDom.createNode("1", "personId", "");
 peorsonNode.appendChild(PersonId);
 var personCode= personDom.createNode("1", "personCode", "");
 peorsonNode.appendChild(personCode);
 var PersonName= personDom.createNode("1", "personName", "");
 peorsonNode.appendChild(PersonName);
 var Sex= personDom.createNode("1", "sex", "");
 peorsonNode.appendChild(Sex);
 var tr = tbList.insertRow(tbList.rows.length);
 tr.setAttribute("seqNo", seqNo);
 var td = tr.insertCell(0);
 td.innerHTML = peorsonNode.transformNode(stylesheet);
}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.