⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 defaulttree.aspx.cs

📁 d:我的文档桌面asp_net中使用AJAX实现DropDownList连动及多级菜单 - ASP-ASP_NET - Web程序开发 - 中国IT信息技术论坛 -精心打造最专业的IT信息及IT技术服
💻 CS
📖 第 1 页 / 共 2 页
字号:
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 System.Data.SqlClient;
using System.Threading;

//该源码首发自www.51aspx.com(51aspx.com)
public partial class DefaultTree : System.Web.UI.Page
{   
     
    
    SqlDataAdapter da = null;
    SqlConnection con = new SqlConnection("server=(local);database=GHRQ;uid=sa;pwd=sa");
    ArrayList dep = new ArrayList();
    DataSet TreeTable = new DataSet();
    

    int j = 0;
    int count = 0;
    int depth = 0;
    
    
    string none = "none";          //------------none 默认树全部认合上   blcok 全部展开
    string plus = "plus.gif";
    bool checkBox = true;
                                   //------------无checkbox 就为false  有的话就为true


    protected void Page_Load(object sender, EventArgs e)
    {
        
            //none = "blcok";
            //plus = "minus.gif";

            //checkBox = false;
            GetTreeInformation("admin");
        
    }
    
    //判断父亲接点是否还有兄弟
    
    public bool JudgeBrother(string current, int i)
    {
        string nextnode;
        bool flag =true;
        while (true)
        {
              i++;
              if (i == count - 1)
              {
                  break;  
              }
              nextnode = TreeTable.Tables[0].Rows[i]["ID"].ToString().Trim();
              if (nextnode.Length > current.Length)  //比他长可能是叶子,在下一级
              {
                  continue;
              }
              else if (nextnode.Length < current.Length)
              {
                  break;
              }
              else //有兄弟
              {
                  flag = false;
                  break;
              }
          
        }
        return flag;

    }
    
    //有兄弟是false;

    public void GetTreeInformation(string username)
    {
        int i = 1;
        da = new SqlDataAdapter("select * from MenuFunc123 order by ID", con);
        da.Fill(TreeTable);
        this.count = TreeTable.Tables[0].Rows.Count;

        Response.Write( "<div class='stylediv'>");
        Response.Write( "<img id=nolines0 src='minus_nolines.gif' width='18px' height='18px' onClick=ClickMenu('maindiv','nolines','0')  align='absmiddle' />");
        if (checkBox)
        {
               Response.Write("<input id='Checkbox0' onClick=SelectBox('maindiv',this) type='checkbox' />"); 
        }
        Response.Write( "<img id=open0 src='open.gif'  width='16px' height='16px' align='absmiddle' />");
        Response.Write( "<a onmousemove='ChangeColora(this)' onmouseleave='ChangeColorb(this)'><span class='stylespan' id='span_0' >&nbsp;港华燃气</span></a></div>");
        Response.Write("<div id='maindiv' belongCheckbox='Checkbox0' >");  //belongCheckbox='Checkbox0' 属于这个div 的checkbox

        Response.Write( "<div class='stylediv'>");
        Response.Write( "<img src='empty.gif' width='18px' height='18px'  align='absmiddle' />");
        for (int mm = depth; mm >0; mm--)   //计算横向深度 添加竖线 
        {
            Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
        }
        Response.Write("<img id=plus" + i.ToString() + " src='" + plus + "' width='18px' height='18px' onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "') align='absmiddle' />");
        if (checkBox)
        {
           Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");
           //---------checkbox 上嵌套两个div ,最上方的div 保存了 checkbox 的  id 就是(belongCheckbox)
        }
        Response.Write( "<img id=open" + i.ToString() + " src='open.gif'  width='16px' height='16px' align='absmiddle' />");
        Response.Write("<a onmousemove='ChangeColora(this)'  onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan' id='span_" + i.ToString() + "'>&nbsp;" + TreeTable.Tables[0].Rows[i]["FuncName"].ToString() + "</SPAN></a></div>");
        Response.Write("<div id='div_" + i.ToString() + "' belongCheckbox='Checkbox" + i.ToString() + "' style='display: " + none + "'>");
        this.depth++;  //-----------------------------------第一级------------------------------
        
        dep.Add(false);
        
        CreatTrees(TreeTable.Tables[0].Rows[1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[2]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[2]["FuncName"].ToString().Trim(), 2,false);
        Response.Write( "</div>");
        Response.Write( "</div>");
    }

    //flag=true 表示无兄弟
    void CreatTrees(string por, string current, string currentname, int i,bool flag) //i的位置跟current 一样 
    {
        if (i == count - 1) //说名是最后一个
        {   
            Response.Write( "<div class='stylediv'>");
            Response.Write("<img src='empty.gif' width='18px' height='18px'  align='absmiddle' />");
            for (int mm = depth; mm > 0; mm--)
            {
                if (flag && mm == 1 && depth < 2)
                {
                    Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
                    break;
                }
                Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
            }
            Response.Write( "<img src='joinbottom.gif' width='18px' height='18px'  align='absmiddle' />");
            if (checkBox)
            {
                Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");

            }
            Response.Write( "<img src='folder.gif'  width='16px' height='16px' align='absmiddle' />");
            Response.Write("<a target=\"mainFrame\" onmousemove='ChangeColora(this)'  onmouseleave='ChangeColorb(this)' href='JumpPage.htm?page=" + TreeTable.Tables[0].Rows[i]["FuncUrl"].ToString().Trim() + "'>" + "<span class='stylespan' id='span_" + i.ToString() + "'>&nbsp;" + currentname + "</span></a></div>");
        }
        else
        {
            string nextnode = TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim();
            if (current.Length > por.Length)  //比他长可能是叶子,在下一级
            {

                if (current.Length < nextnode.Length) //说名他也是一个父亲接点
                {

                    Response.Write( "<div class='stylediv'>");
                    Response.Write( "<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
                    flag=JudgeBrother(current, i);
                    
                    for (int mm = depth; mm > 0; mm--)
                    {   
                        if (flag&&mm==1&&depth<2)
                        {
                            Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
                            break;
                        }
                        Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
                    }
                    Response.Write("<img id=plus" + i.ToString() + " src='" + plus + "' width='18px' height='18px' onClick=ClickMenu('div_" + i.ToString() + "','plus','" + i.ToString() + "') align='absmiddle' />");
                    if (checkBox)
                    {
                        Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");
                        
                    }
                    Response.Write( "<img id=open" + i.ToString() + " src='open.gif' width='16px' height='16px'   align='absmiddle' />");
                    Response.Write("<a onmousemove='ChangeColora(this)'  onmouseleave='ChangeColorb(this)'>" + "<span class='stylespan' id='span_" + i.ToString() + "'>&nbsp;" + TreeTable.Tables[0].Rows[i]["FuncName"].ToString().Trim() + "</SPAN></a></div>");
                    Response.Write("<div id='div_" + i.ToString() + "' belongCheckbox='Checkbox" + i.ToString() + "' style='display: " + none + "'>");
                    
                    this.depth++;
                    dep.Add(flag);
                    CreatTrees(current, TreeTable.Tables[0].Rows[i + 1]["ID"].ToString().Trim(), TreeTable.Tables[0].Rows[i + 1]["FuncName"].ToString().Trim(), i + 1,flag);
                   
                }
                else if (current.Length == nextnode.Length)//--------------------他就是叶子------------
                {
                   
                    Response.Write( "<div class='stylediv'>");
                    Response.Write( "<img src='empty.gif' width='18px' height='18px'  align='absmiddle' />");
                    
                    int nn = 0;
                    for (int mm = depth; mm > 0; mm--)
                    {
                        
                        if (flag && mm == 1)
                        {
                            Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
                            break;
                        }
                        if (dep[nn].ToString() == "False")
                            Response.Write("<img src='line.gif' width='18px' height='18px' align='absmiddle' />");
                        if (dep[nn++].ToString() == "True")
                            Response.Write("<img src='empty.gif' width='18px' height='18px' align='absmiddle' />");
                    }
                    Response.Write( "<img src='join.gif' width='18px' height='18px' align='absmiddle' />");
                    if (checkBox)
                    {
                        Response.Write("<input id='Checkbox" + i.ToString() + "' onClick=SelectBox('div_" + i.ToString() + "',this) type='checkbox' />");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -