2 Stimmen

Ich bin mit Sammlung zu bevölkern treeview in asp.net. Wie werde ich Knoten aus dem Baum löschen

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

using ETG.TechnicalEditorialDEL;
using ETG.TechnicalEditorialBAL;
using System.Collections.Generic;

namespace TechnicalEditorialWebUI.MasterEditorialPage
{
    public partial class ConfigurationSettings : System.Web.UI.Page
    {
        List<TreeList> lstTreeList = new List<TreeList>();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                PopulateComponentType();
                PopulateComponent();
            }
        }
    public void PopulateComponentType()
    {
        GetLookUpData getLookUpData = new GetLookUpData();
        ddlComponentType.DataSource = getLookUpData.GetComponentTypes();
        ddlComponentType.DataValueField = "ComponentTypeId";
        ddlComponentType.DataTextField = "ComponentTypeDesc";
        ddlComponentType.DataBind();
    }

    public void PopulateComponent()
    {
        ComponentType componentType = new ComponentType { ComponentTypeId = Convert.ToInt32(ddlComponentType.SelectedValue) };
        GetLookUpData getLookUpData = new GetLookUpData();
        lstComponent.DataSource = getLookUpData.GetComponentByComponentType(componentType);
        lstComponent.DataValueField = "ComponentId";
        lstComponent.DataTextField = "ComponentTypeDesc";
        lstComponent.DataBind();
    }

    protected void ddlComponentType_SelectedIndexChanged(object sender, EventArgs e)
    {
        lstComponent.Items.Clear();
        PopulateComponent();
    }

    protected void btnAdd_Click(object sender, EventArgs e)
    {
        if (ViewState["TreeList"] == null)
        {
            CreateTree(lstTreeList);
        }
        else
        {
            List<TreeList> newLstTree = (List<TreeList>)ViewState["TreeList"];
            CreateTree(newLstTree);
        }
    }

    protected void btnRemove_Click(object sender, EventArgs e)
    {
        //if (ViewState["TreeList"] == null)
        //{

        //    CreateTree(lstTreeList);
        //}
        //else
        {
            RemoveNodeFromTree();
        }
    }

    private void CreateTreeWithNodes()
    {           
        //var newLstTree = ((List<TreeList>)ViewState["TreeList"]).OrderBy(x=>x.Parent).Select(x=>x);

        //var newLstTree = (from t in (List<TreeList>)ViewState["TreeList"]
        //                  orderby t.Parent.Keys ascending
        //                  select t).ToList();

        TreeView1.Nodes.Clear();

        foreach (TreeList item in (List<TreeList>)ViewState["TreeList"])
        {
            TreeNode treeNode = new TreeNode();

            foreach (var key in item.Parent)
            {                    
                treeNode.Text = key.Value;
                treeNode.Value = key.Key;
            }

            foreach (var child in item.Child)
            {
                foreach (var key in child)
                {
                    treeNode.ChildNodes.Add(new TreeNode(key.Value, key.Key));
                }
            }
            TreeView1.Nodes.Add(treeNode);
        }
    }

    private void CreateTree(List<TreeList> lstTreeList)
    {
        TreeList objTreeList = new TreeList();
        objTreeList.Child = new List<Dictionary<string, string>>();
        objTreeList.Parent = new Dictionary<string, string>(); 
        objTreeList.Parent.Add(ddlComponentType.SelectedValue, ddlComponentType.SelectedItem.Text);

        Dictionary<string, string> temp = null;

        foreach (ListItem item in lstComponent.Items)
        {
            if (item.Selected)
            {
                temp = new Dictionary<string, string>();
                temp.Add(item.Value, item.Text);
                objTreeList.Child.Add(temp);

                //  treeNode.ChildNodes.Add(new TreeNode(item.Text, item.Value));
            }
        }

        lstTreeList.Add(objTreeList);

        ViewState["TreeList"] = lstTreeList;
        CreateTreeWithNodes();
    }

    private void RemoveNodeFromTree()
    {
        List<TreeList> newLstTree = lstTreeList;
        string strNode= TreeView1.SelectedNode.Parent.Value;

        TreeList objTreeList = new TreeList();

        //treeNode.Text = TreeView1.SelectedNode.Parent.Text;
        //treeNode.Value = TreeView1.SelectedNode.Parent.Value;          

        //foreach (var  treeListObject in treeView)
        //{
        //    if (treeListObject.Child == TreeView1.SelectedNode.Text)
        //    {

        //    }
        //}

        //treeNode.ChildNodes.Remove(new TreeNode(TreeView1.SelectedNode.Value,  TreeView1.SelectedNode.Text));

        //TreeView1.Nodes.Add(treeNode);

        //Dictionary<string, string> temp = new Dictionary<string,string>();

        //objTreeList.Parent.Add(TreeView1.SelectedNode.Parent.Value, TreeView1.SelectedNode.Parent.Text);

        //temp.Add(TreeView1.SelectedNode.Value,  TreeView1.SelectedNode.Text);
        //objTreeList.Child.Add(temp);

        //newLstTree.Remove(objTreeList);           
    }
}

[Serializable]
class TreeList : IComparable
{
    public Dictionary<string, string> Parent { get; set; }

    public List<Dictionary<string, string>> Child { get; set; }

    #region IComparable Members

    public int CompareTo(object obj)
    {
        throw new NotImplementedException();
    }

    #endregion        
}
 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X