增加带标记的树形

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;

public partial class manage_managepages_addpermission : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            BindDDLTree(ParentID);
        }
    }

    #region 绑定权限树

    private void BindDDLTree(DropDownList ddl)
    {
        bool blnReturn;

        //选择不同的父级,显示不同的级树
        System.Collections.Generic.IList<PeiXun.Entity.EPermissions> permissions = PeiXun.BLL.BPermissions.LoadDataList(0);

        //定义顶级
        ListItem li = new ListItem();
        li.Text = "无(作为一级栏目)";
        li.Value = "0";
        ddl.Items.Add(li);

        if (permissions.Count > 0)
        {
            for (int i = 0; i < permissions.Count; i++)
            {
                ListItem item = new ListItem();

                if (permissions[i].ParentID != 0)
                {
                    //如果不是根节点,遍历找到父节点,把该节点添加在父节点下
                    blnReturn = false;
                    for (int j = 0; j < ddl.Items.Count; j++)
                    {
                        string str = "";
                        for (int m = 0; m < permissions[i].Depth; m++)
                        {
                            str += "│ ";
                        }

                        item.Text = str + "├ " + permissions[i].PermissionName;
                        item.Value = permissions[i].PermissionID.ToString();

                        blnReturn = IncreaseNode(ddl, ddl.Items[j], item, permissions[i].ParentID.ToString());

                        if (blnReturn)
                        {
                            break;
                        }
                    }
                }
                else
                {
                    //如果是根节点,直接添加为根节点
                    item.Text = "├ " + permissions[i].PermissionName;
                    item.Value = permissions[i].PermissionID.ToString();
                    ddl.Items.Add(item);
                }
            }
        }
    }
    public static bool IncreaseNode(DropDownList ddl, ListItem parentNode, ListItem childNode, string parentID)
    {
        if (parentNode.Value == parentID)
        {
            ddl.Items.Insert(ddl.Items.IndexOf(parentNode) + 1, childNode);
            //parentNode.ChildNodes.Add(childNode);
            return true;
        }
        //for (int i = 0; i < ddl.Items.Count; i++)
        //{
        //    if (IncreaseNode(ddl, ddl.Items[i], childNode, parentID))
        //    {
        //        return true;
        //    }
        //}
        return false;
    }
    #endregion

    protected void SaveButton_Click(object sender, EventArgs e)
    {
        if (PermissionName.Text == "")
        {
            return;
        }
        if (Description.Text == "")
        {
            return;
        }
        if (IconUrl.Text == "")
        {
            return;
        }

        int Depth = 0;
        int SortID = 1;
        if (ParentID.SelectedValue != "0")
        {
            Depth = 1;
        }

        PeiXun.BLL.BPermissions.InsertData(int.Parse(ParentID.SelectedValue), PermissionName.Text, Description.Text, IconUrl.Text, PathUrl.Text, SortID, Depth);

        Response.Redirect("managepermission.aspx");
    }
}

原文地址:https://www.cnblogs.com/hqbird/p/1389216.html