zoukankan      html  css  js  c++  java
  • 配合Ajaxpro读取无限父子关系部门使用javascript生成的树形目录

    前台的js页面:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="displayDepartment.aspx.cs" Inherits="OASolution.Web.systemModule_displayDepartment" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>无标题页</title>
    <style type="text/css">
    <!--
    body {
     background-color: #D5DEE6;
     margin-left: 0px;
     margin-top: 0px;
     margin-right: 0px;
     margin-bottom: 0px;
     background-image: url(../images/right_bg.jpg);
     background-repeat:repeat-x;
    }
    -->
    </style>
    <link href="../css/css.css" rel="stylesheet" type="text/css">
        <script language=javascript type="text/javascript">
            function init()//初始化
            {
                var obj = document.getElementById('div1');
                getAll(obj,0);//0是父节点编号
            }
            function getAll(obj,e)//传入父容器,和父节点的编号
            {
                var ds = OASolution.Web.systemModule_displayDepartment.getAllChildDepartment(e).value;
                if(ds !=null && ds.Tables[0] != null && ds.Tables[0].Rows.length != 0)
                {
                    var tb = ds.Tables[0];
                    var length = tb.Rows.length;
                    if(length != 0)
                    {
                        for(var n = 0;n < length ; n++)
                        {
                            var divObj = document.createElement('div');
                            divObj.id =e + '_' + tb.Rows[n]['DepartmentID'];
    //                        divObj.className = 'home_right';
                            divObj.innerHTML ='<hr style="color:#DAE1E9">' + createSpace(tb.Rows[n]['Grade'],tb.Rows[n]['DepartmentID']) +tb.Rows[n]['DepartmentName']  +'</a> <a href="editDepartment.aspx?departid='+tb.Rows[n]['DepartmentID']+'"><img border=0 alt="编辑" title="编辑" src="../images/edit.gif" /></a> ';

                            obj.appendChild(divObj);
                            if(tb.Rows[n]['Grade'] != 1)
                            {
                                divObj.style.display = 'none';
                            }
                            getAll(divObj,tb.Rows[n]['DepartmentID']);
                        }
                    }
                }
                {
                    return ;
                }
            }
            function createSpace(grade,departID)//显示空格。传入级别和部门编号
            {
                var space = OASolution.Web.systemModule_displayDepartment.createLine(grade,departID).value;
                return space;
            }
            function clickNode()//点击事件(要注意点击的元素对象)
            {
                changePic();
                var aObj = event.srcElement;
                var obj;
                if(aObj.tagName == 'A')
                {
                    obj = aObj.parentElement;
                }
                else if(aObj.tagName == 'IMG')
                {
                    obj = aObj.parentElement.parentElement;
                }
                var parentID = obj.id;
                var temp = parentID.lastIndexOf('_');
                var tempParentID = parentID.substr(temp + 1);
                var childObj = obj.getElementsByTagName('div');
                var length = childObj.length;
                if(length != 0)
                {
                    for(var n = 0; n < length ;n++)
                    {
                        var childID = childObj[n].id;
                        var temp = childID.lastIndexOf('_');
                        var pID = childID.substr(0,temp);
                       if(tempParentID == pID )
                       {
                            if(childObj[n].style.display == 'none')
                            {
                                childObj[n].style.display = 'block';
                            }
                            else
                            {
                                 for(var n = 0; n < length ;n++)
                                 {
                                    childObj[n].style.display = 'none';
                                 }
                                 changePicToPlus(childObj);
                            }
                       }
                    }
                }
                else
                {
                    return ;
                }
            }
            function changePic()//切换加减图片的显示注意点击的元素对象
            {
                var picObj;
                var aObj = event.srcElement;
                 if(aObj.tagName == 'A')
                {
                    picObj = aObj.getElementsByTagName('img');
                    if(picObj.length != 0)
                    {
                        var pic = picObj[0].src;
                        var temp = pic.lastIndexOf('/');
                        var picname = pic.substr(temp + 1);
                        if(picname == 'plus.gif')
                        {
                            picObj[0].src = '../images/minus.gif';
                        }
                        else
                        {
                            picObj[0].src = '../images/plus.gif';
                        }
                    }
                }
                else if(aObj.tagName == 'IMG')
                {
                    picObj = aObj;
                    var pic = picObj.src;
                    var temp = pic.lastIndexOf('/');
                    var picname = pic.substr(temp + 1);
                    if(picname == 'plus.gif')
                    {
                         picObj.src = '../images/minus.gif';
                    }
                    else
                    {
                         picObj.src = '../images/plus.gif';
                    }
                }
               
            }
            function changePicToPlus(divObj)//收缩的时候把所有子子节点的减号改为加号图片
            {
                if(divObj.length != 0)
                {
                    for(var n = 0;n < divObj.length ; n++)
                    {
                        var picObj = divObj[n].getElementsByTagName('img');
                        if(picObj.length != 0)
                        {
                            var pic = picObj[0].src;
                            var temp = pic.lastIndexOf('/');
                            var picname = pic.substr(temp + 1);
                            picObj[0].src = '../images/plus.gif';
                        }
                    }
                }
                else
                {
                   
                }
            }
        </script>
    </head>
    <body onload="init()">
        <form id="form1" runat="server">
        <table width="92%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td width="25%" class="right_name" style="padding-top:15px; padding-left:10px; padding-bottom:5px"><img src="../images/name/name_fsxx.gif" width="35" height="35" align="absmiddle">
            部门信息
        </td>
        <td class="font" style="padding-top:15px; padding-bottom:5px"><div align="right">
        <a href=DepartMent.aspx><img border=0 src="../images/button/add.gif"  width="83" height="24" /></a> 
        <a href="javascript:save()"><img src="../images/button/modify.gif" width="83" height="24" border=0></a>
        </div></td>
      </tr>
    </table>
    <table width="92%" border="0" align="center" cellpadding="0" cellspacing="0" style="font-size: 12pt">
    <tr>
        <td height=400px class="table" align=left valign=top><div id="div1" style="font-size: 12px; color: #475A78; margin-left:20px; margin-top:20px;" align=left> </div></td>
    </tr>
       
     </table>      
      
       
        </form>
    </body>
    </html>
    后台的cs代码:

    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using AjaxPro;

    namespace OASolution.Web
    {
        public partial class systemModule_displayDepartment : PageBase
        {
            public OASolution.BLL.SystemModle SM = new OASolution.BLL.SystemModle();
            protected void Page_Load(object sender, EventArgs e)
            {
                AjaxPro.Utility.RegisterTypeForAjax(typeof(systemModule_displayDepartment));
            }

            /// <summary>
            /// 输入部门编号得到该部门的所以子部门
            /// </summary>
            /// <param name="parentID"></param>
            //public void getAllChildDepartment(int parentID)
            //{
            //    DataSet ds = SM.GetDepartMentList(parentID);

            //    if (ds.Tables[0].Rows.Count == 0 || ds.Tables[0] == null || ds == null)
            //    {
            //        return;
            //    }
            //    for (int n = 0; n < ds.Tables[0].Rows.Count; n++)
            //    {
            //        ListItem li = new ListItem();
            //        li.Value = ds.Tables[0].Rows[n][0].ToString();
            //        li.Text = createLine(int.Parse(ds.Tables[0].Rows[n][7].ToString().Trim())) + ds.Tables[0].Rows[n][3].ToString().Trim();
            //        this.ddlDepartMent.Items.Add(li);
            //        getAllChildDepartment(int.Parse(ds.Tables[0].Rows[n][0].ToString()));
            //    }
            //}

            /// <summary>
            /// 生成父子部门的划线
            /// </summary>
            /// <param name="grade"></param>
            /// <returns></returns>
            [AjaxPro.AjaxMethod]
            public string createLine(int grade,int departID)
            {
                string line = String.Empty;
                int count = GetChildCount(departID);
                if (grade == 1)
                {
                    if (count == 0)
                    {
                        return "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a style='cursor:hand;' onclick='clickNode()' id='" + departID + "'>";
                    }
                    else
                    {
                        return " <a style='cursor:hand;' onclick='clickNode()' id='" + departID + "'><img src='../images/plus.gif' />";
                    }
                }
                else
                {
                    for (int n = 1; n < grade; n++)
                    {
                        line += "<a color='#475A78'>--------</a>";
                    }
                    line += "<a style='cursor:hand;' onclick='clickNode()' id='" + departID + "'>";
                }
                if(count != 0)
                {
                    line += "<img src='../images/plus.gif' />";
                }
                return line;
            }

          

            [AjaxPro.AjaxMethod]
            public DataSet getAllChildDepartment(int parentID)
            {
                DataSet ds = SM.GetDepartMentList(parentID);
                return ds;
            }
            [AjaxPro.AjaxMethod]
            public DataSet GetChildDepartmentID(string departID)
            {
                DataSet ds = SM.GetChildDepartmenID(int.Parse(departID));
                return ds;
            }

            [AjaxPro.AjaxMethod]
            public int GetChildCount(int departID)
            {
                return SM.GetChildCount(departID);
            }
        }
    }

    本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

  • 相关阅读:
    git项目管理-合并请求
    记录一次git stash找回删除的存储
    chrome 下 position:fixed失效(react)
    css3 var变量
    rc-select下拉选择控件库推荐
    (转载)vue路径后面去除#号
    本地配置独立域名环境
    javascript判断pc还是手机端
    javascript复制到粘贴板的方案
    javascript轮播插件的使用(TouchSlide)
  • 原文地址:https://www.cnblogs.com/zjypp/p/2319510.html
Copyright © 2011-2022 走看看