首页 > Web开发 > 详细

4、Ext.NET 1.7 官方示例笔记 - 树

时间:2019-11-11 00:08:02      阅读:113      评论:0      收藏:0      [点我收藏+]
<%@ Page Language="C#" %>

<%@ Import Namespace="System.Collections.Generic" %>

<%@ Register Assembly="Ext.Net" Namespace="Ext.Net" TagPrefix="ext" %>

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        Ext.Net.TreePanel tree = new Ext.Net.TreePanel();

        this.PlaceHolder1.Controls.Add(tree);

        tree.ID = "TreePanel1";
        tree.Width = Unit.Pixel(300);
        tree.Height = Unit.Pixel(450);
        tree.Icon = Icon.BookOpen;
        tree.Title = "Catalog";
        tree.AutoScroll = true;

        Ext.Net.Button btnExpand = new Ext.Net.Button();
        btnExpand.Text = "Expand All";
        btnExpand.Listeners.Click.Handler = tree.ClientID + ".expandAll();";

        Ext.Net.Button btnCollapse = new Ext.Net.Button();
        btnCollapse.Text = "Collapse All";
        btnCollapse.Listeners.Click.Handler = tree.ClientID + ".collapseAll();";

        Toolbar toolBar = new Toolbar();
        toolBar.ID = "Toolbar1";
        toolBar.Items.Add(btnExpand);
        toolBar.Items.Add(btnCollapse);
        tree.TopBar.Add(toolBar);

        StatusBar statusBar = new StatusBar();
        statusBar.AutoClear = 1000;
        tree.BottomBar.Add(statusBar);

        tree.Listeners.Click.Handler = statusBar.ClientID + ".setStatus({text: ‘Node Selected: <b>‘ + node.text + ‘</b>‘, clear: true});";
        tree.Listeners.ExpandNode.Handler = statusBar.ClientID + ".setStatus({text: ‘Node Expanded: <b>‘ + node.text + ‘</b>‘, clear: true});";
        tree.Listeners.ExpandNode.Delay = 30;
        tree.Listeners.CollapseNode.Handler = statusBar.ClientID + ".setStatus({text: ‘Node Collapsed: <b>‘ + node.text + ‘</b>‘, clear: true});";
        
        Ext.Net.TreeNode root = new Ext.Net.TreeNode("Composers");
        root.Expanded = true;
        tree.Root.Add(root);

        List<Composer> composers = this.GetData();

        foreach (Composer composer in composers)
        {
            Ext.Net.TreeNode composerNode = new Ext.Net.TreeNode(composer.Name, Icon.UserGray);
            root.Nodes.Add(composerNode);
            
            foreach(Composition composition in composer.Compositions)
            {
                Ext.Net.TreeNode compositionNode = new Ext.Net.TreeNode(composition.Type.ToString());
                composerNode.Nodes.Add(compositionNode);

                foreach (Piece piece in composition.Pieces)
                {
                    Ext.Net.TreeNode pieceNode = new Ext.Net.TreeNode(piece.Title, Icon.Music);
                    compositionNode.Nodes.Add(pieceNode);
                }
            }
        } 
    }
    
    public class Composer
    {
        public Composer(string name) { this.Name = name; }
        public string Name { get; set; }
        
        private List<Composition> compositions;
        public List<Composition> Compositions
        { 
            get
            {
                if (this.compositions == null)
                {
                    this.compositions = new List<Composition>();
                }
                return this.compositions;
            } 
        }
    }

    public class Composition
    {
        public Composition() { }

        public Composition(CompositionType type)
        {
            this.Type = type;
        }
        
        public CompositionType Type { get; set; }

        private List<Piece> pieces;
        public List<Piece> Pieces
        {
            get
            {
                if (this.pieces == null)
                {
                    this.pieces = new List<Piece>();
                }
                return this.pieces;
            }
        } 
    }
        
    public class Piece
    {
        public Piece() {}

        public Piece(string title) 
        { 
            this.Title = title; 
        }
        
        public string Title { get; set; }
    }

    public enum CompositionType
    {
        Concertos,
        Quartets,
        Sonatas,
        Symphonies
    }

    public List<Composer> GetData()
    { 
        Composer beethoven = new Composer("Beethoven");

        Composition beethovenConcertos = new Composition(CompositionType.Concertos);
        Composition beethovenQuartets = new Composition(CompositionType.Quartets);
        Composition beethovenSonatas = new Composition(CompositionType.Sonatas);
        Composition beethovenSymphonies = new Composition(CompositionType.Symphonies);

        beethovenConcertos.Pieces.AddRange(new List<Piece> { 
            new Piece{ Title = "No. 1 - C" },
            new Piece{ Title = "No. 2 - B-Flat Major" },
            new Piece{ Title = "No. 3 - C Minor" },
            new Piece{ Title = "No. 4 - G Major" },
            new Piece{ Title = "No. 5 - E-Flat Major" }
        });

        beethovenQuartets.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "Six String Quartets" },
            new Piece{ Title = "Three String Quartets" },
            new Piece{ Title = "Grosse Fugue for String Quartets" }
        });

        beethovenSonatas.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "Sonata in A Minor" },
            new Piece{ Title = "sonata in F Major" }
        });

        beethovenSymphonies.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "No. 1 - C Major" },
            new Piece{ Title = "No. 2 - D Major" },
            new Piece{ Title = "No. 3 - E-Flat Major" },
            new Piece{ Title = "No. 4 - B-Flat Major" },
            new Piece{ Title = "No. 5 - C Minor" },
            new Piece{ Title = "No. 6 - F Major" },
            new Piece{ Title = "No. 7 - A Major" },
            new Piece{ Title = "No. 8 - F Major" },
            new Piece{ Title = "No. 9 - D Minor" }
        });

        beethoven.Compositions.AddRange(new List<Composition>{
            beethovenConcertos, 
            beethovenQuartets,
            beethovenSonatas,
            beethovenSymphonies 
        });


        Composer brahms = new Composer("Brahms");

        Composition brahmsConcertos = new Composition(CompositionType.Concertos);
        Composition brahmsQuartets = new Composition(CompositionType.Quartets);
        Composition brahmsSonatas = new Composition(CompositionType.Sonatas);
        Composition brahmsSymphonies = new Composition(CompositionType.Symphonies);

        brahmsConcertos.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "Violin Concerto" },
            new Piece{ Title = "Double Concerto - A Minor" },
            new Piece{ Title = "Piano Concerto No. 1 - D Minor" },
            new Piece{ Title = "Piano Concerto No. 2 - B-Flat Major" }
        });

        brahmsQuartets.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "Piano Quartet No. 1 - G Minor" },
            new Piece{ Title = "Piano Quartet No. 2 - A Major" },
            new Piece{ Title = "Piano Quartet No. 3 - C Minor" },
            new Piece{ Title = "Piano Quartet No. 3 - B-Flat Minor" }
        });

        brahmsSonatas.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "Two Sonatas for Clarinet - F Minor" },
            new Piece{ Title = "Two Sonatas for Clarinet - E-Flat Major" }
        });

        brahmsSymphonies.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "No. 1 - C Minor" },
            new Piece{ Title = "No. 2 - D Minor" },
            new Piece{ Title = "No. 3 - F Major" },
            new Piece{ Title = "No. 4 - E Minor" }
        });

        brahms.Compositions.AddRange(new List<Composition>{
            brahmsConcertos, 
            brahmsQuartets,
            brahmsSonatas,
            brahmsSymphonies 
        });
        
        
        Composer mozart = new Composer("Mozart");

        Composition mozartConcertos = new Composition(CompositionType.Concertos);

        mozartConcertos.Pieces.AddRange(new List<Piece> {
            new Piece{ Title = "Piano Concerto No. 12" },
            new Piece{ Title = "Piano Concerto No. 17" },
            new Piece{ Title = "Clarinet Concerto" },
            new Piece{ Title = "Violin Concerto No. 5" },
            new Piece{ Title = "Violin Concerto No. 4" }
        });

        mozart.Compositions.Add(mozartConcertos);

        return new List<Composer>{ beethoven, brahms, mozart };
    }
</script>

<!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>Multi Node TreePanel built from code-behind - Ext.NET Examples</title>
    <link href="../../../../resources/css/examples.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form runat="server">
        <ext:ResourceManager runat="server" />
        
        <h1>Multi Node TreePanel Built From Code-Behind</h1>

        <asp:PlaceHolder ID="PlaceHolder1" runat="server" />
    </form>
</body>
</html>

技术分享图片

 

 

  

4、Ext.NET 1.7 官方示例笔记 - 树

原文:https://www.cnblogs.com/wanghaibin/p/11832333.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!