Click here to Skip to main content
15,896,111 members
Home / Discussions / .NET (Core and Framework)
   

.NET (Core and Framework)

 
AnswerrootSearch = New DirectorySearcher(root) Pin
Mike Phares Jr11-Jun-10 20:45
Mike Phares Jr11-Jun-10 20:45 
GeneralRe: rootSearch = New DirectorySearcher(root) Pin
saini arun11-Jun-10 20:57
saini arun11-Jun-10 20:57 
GeneralRe: rootSearch = New DirectorySearcher(root) Pin
Abhinav S12-Jun-10 6:04
Abhinav S12-Jun-10 6:04 
GeneralRe: rootSearch = New DirectorySearcher(root) Pin
Pete O'Hanlon12-Jun-10 9:10
mvePete O'Hanlon12-Jun-10 9:10 
QuestionMLM TREE Pin
vijayksh11110-Jun-10 7:18
vijayksh11110-Jun-10 7:18 
AnswerRe: MLM TREE Pin
Dr.Walt Fair, PE10-Jun-10 7:30
professionalDr.Walt Fair, PE10-Jun-10 7:30 
AnswerRe: MLM TREE Pin
Pete O'Hanlon10-Jun-10 22:37
mvePete O'Hanlon10-Jun-10 22:37 
AnswerRe: MLM TREE Pin
_Ashish8-Jul-10 6:34
_Ashish8-Jul-10 6:34 
MLM Companies present their CUSTOMER HIERARCHY with a Horizontal Tree like Binary Tree ( 2 legs ), Sponsor Tree ( multiple Legs ), POOL Tree ( 3 or 4 legs)

Normal Tree Controls are vertical But you can build it Using COMPOSITE Control and Define your Legs / Levels at design time on your page.

Below is a Code Snippet to make you some idea about it.

<br />
namespace MLMTreeCntrol<br />
    {<br />
<br />
<br />
        public class templatedTree : System.Web.UI.WebControls.CompositeControl, INamingContainer<br />
        {<br />
            private ITemplate messageTemplate = null;<br />
            private ITemplate TreeNode = null;<br />
            private int _MaxLevel = 1;<br />
            private int _Branch = 2;<br />
<br />
            public int StartLevel<br />
            {<br />
                get<br />
                {<br />
                    return (int)ViewState["_StartLevel"];<br />
                }<br />
                set<br />
                {<br />
                    ViewState["_StartLevel"] = value;<br />
<br />
                }<br />
            }<br />
<br />
            public int MaxLevel<br />
            {<br />
                get<br />
                {<br />
                    return _MaxLevel;<br />
                }<br />
                set<br />
                {<br />
                    _MaxLevel = value;<br />
                }<br />
            }<br />
<br />
            public int Branch<br />
            {<br />
                get<br />
                {<br />
                    return _Branch;<br />
                }<br />
                set<br />
                {<br />
                    _Branch = value;<br />
                }<br />
            }<br />
<br />
            [TemplateContainer(typeof(MessageContainer))]<br />
            [PersistenceMode(PersistenceMode.InnerProperty)]<br />
            public ITemplate MessageTemplate<br />
            {<br />
                get<br />
                {<br />
                    return messageTemplate;<br />
                }<br />
                set<br />
                {<br />
                    messageTemplate = value;<br />
                }<br />
            }<br />
<br />
<br />
            [TemplateContainer(typeof(MessageContainer))]<br />
            [PersistenceMode(PersistenceMode.InnerProperty)]<br />
            public ITemplate Node<br />
            {<br />
                get<br />
                {<br />
                    return TreeNode;<br />
                }<br />
                set<br />
                {<br />
                    TreeNode = value;<br />
                }<br />
            }<br />
<br />
            public delegate void NodeHandler(object sender, CommandEventArgs e, MessageContainer s);<br />
            public event NodeHandler ItemCommandA;<br />
<br />
            protected override bool OnBubbleEvent(object sender, EventArgs e)<br />
            {<br />
                ItemCommandA(this, (CommandEventArgs)e, ((Control)sender).NamingContainer as MessageContainer);<br />
                CommandEventArgs C = (CommandEventArgs)e;<br />
                //this._StartLevel = int.Parse(C.CommandArgument.ToString());<br />
                //this.Controls.Clear();<br />
                //makeTree(_StartLevel, this, 1);<br />
                return true;<br />
            }<br />
<br />
<br />
            protected override void CreateChildControls()<br />
            {<br />
                //this.EnsureChildControls();<br />
                if (ViewState["_StartLevel"] == null)<br />
                {<br />
                    ViewState["_StartLevel"] = 1;<br />
                }<br />
                this.Controls.Clear();<br />
                if (messageTemplate != null)<br />
                {<br />
                    makeTree((int)ViewState["_StartLevel"], this, 1);<br />
                }<br />
            }<br />
<br />
            public override void DataBind()<br />
            {<br />
                CreateChildControls();<br />
<br />
                this.ChildControlsCreated = true;<br />
                // mark that the children have been created<br />
<br />
                base.DataBind();      // call the DataBind method<br />
            }<br />
<br />
<br />
<br />
            private void makeTree(int i, Control ctrl, int level)<br />
            {<br />
                if (level <= MaxLevel)<br />
                {<br />
                    ctrl.Controls.Add(new LiteralControl("<table border=1><tr><td colspan=" + _Branch + " align=center>"));<br />
                    MessageContainer container = new MessageContainer(i, "r");<br />
                    messageTemplate.InstantiateIn(container);<br />
                    ctrl.Controls.Add(container);<br />
<br />
                    ctrl.Controls.Add(new LiteralControl("</td></tr><tr>"));<br />
<br />
                    for (int j = 1; j <= _Branch; j++)<br />
                    {<br />
                        ctrl.Controls.Add(new LiteralControl("<td align=center>" + i));<br />
                        makeTree(i + j, ctrl, level + 1);<br />
                        ctrl.Controls.Add(new LiteralControl("</td>"));<br />
                    }<br />
<br />
<br />
                    ctrl.Controls.Add(new LiteralControl("</tr></table>"));<br />
                }<br />
            }<br />
<br />
<br />
            public class MessageContainer: Control, INamingContainer<br />
            {<br />
                private int m_index;<br />
                private Object node;<br />
<br />
                private String m_message;<br />
                internal MessageContainer(int index, Object Cnode)<br />
                {<br />
                    m_index = index;<br />
                    node = Cnode;<br />
<br />
                }<br />
                public int Index<br />
                {<br />
                    get<br />
                    {<br />
                        return m_index;<br />
                    }<br />
                }<br />
<br />
               public Object NodeVal<br />
                {<br />
                    get<br />
                    {<br />
                        return node;<br />
                    }<br />
                }<br />
            }<br />
        }<br />
    }<br />
<br />


hope this helps
cheers
Believes in betterment not the Best

QuestionDo you still need 3.5 if you only install 4.0? Pin
Randar Puust10-Jun-10 4:59
Randar Puust10-Jun-10 4:59 
AnswerRe: Do you still need 3.5 if you only install 4.0? Pin
Peace ON10-Jun-10 5:16
Peace ON10-Jun-10 5:16 
GeneralRe: Do you still need 3.5 if you only install 4.0? Pin
Luc Pattyn10-Jun-10 5:33
sitebuilderLuc Pattyn10-Jun-10 5:33 
GeneralRe: Do you still need 3.5 if you only install 4.0? Pin
Richard MacCutchan10-Jun-10 5:45
mveRichard MacCutchan10-Jun-10 5:45 
AnswerRe: Do you still need 3.5 if you only install 4.0? Pin
dan!sh 10-Jun-10 6:15
professional dan!sh 10-Jun-10 6:15 
AnswerRe: Do you still need 3.5 if you only install 4.0? Pin
Anshul R10-Jun-10 20:03
Anshul R10-Jun-10 20:03 
AnswerRe: Do you still need 3.5 if you only install 4.0? Pin
AnnieMacD12-Jun-10 3:20
AnnieMacD12-Jun-10 3:20 
GeneralRe: Do you still need 3.5 if you only install 4.0? Pin
Luc Pattyn12-Jun-10 4:33
sitebuilderLuc Pattyn12-Jun-10 4:33 
QuestionErro while trying to open an application in VS.Net 1.1 Pin
meeram39510-Jun-10 1:21
meeram39510-Jun-10 1:21 
AnswerRe: Erro while trying to open an application in VS.Net 1.1 Pin
Luc Pattyn10-Jun-10 1:36
sitebuilderLuc Pattyn10-Jun-10 1:36 
GeneralRe: Erro while trying to open an application in VS.Net 1.1 Pin
meeram39510-Jun-10 5:13
meeram39510-Jun-10 5:13 
GeneralRe: Erro while trying to open an application in VS.Net 1.1 Pin
Luc Pattyn10-Jun-10 5:18
sitebuilderLuc Pattyn10-Jun-10 5:18 
AnswerRe: Erro while trying to open an application in VS.Net 1.1 Pin
T M Gray10-Jun-10 10:57
T M Gray10-Jun-10 10:57 
QuestionMemory allocation for List Pin
sujithkumarsl9-Jun-10 22:45
sujithkumarsl9-Jun-10 22:45 
AnswerRe: Memory allocation for List Pin
Peace ON9-Jun-10 23:05
Peace ON9-Jun-10 23:05 
AnswerRe: Memory allocation for List Pin
Luc Pattyn10-Jun-10 1:42
sitebuilderLuc Pattyn10-Jun-10 1:42 
AnswerRe: Memory allocation for List Pin
Anshul R10-Jun-10 20:05
Anshul R10-Jun-10 20:05 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.