C#中的树级显示

编程入门 行业动态 更新时间:2024-10-07 12:23:36
本文介绍了C#中的树级显示的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个表,其中包含contactID,sponsorID(是父级),位置(L或R)和一个Level(级别),它将为我提供树中的级别.我有一个sql作业,该作业会定期填充此表,然后查询该表以获取我的分销商的各个下线.我的问题是,我可以在树上填充树状结构,但是如何遍历树以查找下一个位置,该位置可用来放置我注册的所有新分销商.它是一棵二叉树,因此每个分发者只能有2个子记录.这是用SQL还是我的ASP.Net应用程序中的函数完成的.我读了很多有关二叉树放置的文章,但对我的情况没有任何帮助. 有人有如何执行此操作的示例吗? 谢谢

I have a table that contains a contactID, sponsorID (which is the parent), position (L or R) and a Level which will give me the level in the tree. I have a sql job that populates this table at regular intervals and then I query this table to get individual downlines for my distributors. My problem is, I can populate the table with the tree like structure but how do I traverse through the tree to find out the next position available to place any new distributors that I sign up. It''s a binary tree so every distributor can only have 2 child records. Is this done in SQL or in a function in my ASP.Net app. I''m read a lot of articles on binary tree placement but nothing to help me out in my situation. Does anybody have any examples on how to do this? Thanks

推荐答案

您将不得不使用字符串生成器来制作树并查询字符串以从数据库中检索值.您必须做两件事-在树中创建树和树.这是一个样本.根据需要进行更改. :) 这是用于创建树 You will have to use string builder to make your tree and query strings to retrieve values form database. you have to do two things - create tree and fi dteails in the tree. Here is a sample. Change it according to your need. :) this is for creating tree protected string createTree() { StringBuilder sMemberTree = new StringBuilder(); sMemberTree.Append("<table class='genelogyTreeMain' border='0' cellspacing='0' cellpadding='0' align='center' width='95%'><tr>"); if (webFactory.getUser(Session.SessionID).IsActive) { sMemberTree.Append("<td valign='bottom' colspan='3' align='center'>"); img = sponsorGender == "Male" ? "maleSpo.jpg" : "femaleSpo.jpg"; sMemberTree.Append("<a href='tree.aspx?id=" + sponsorId + "&name=" + sponsorName + "&gender=" + sponsorGender + "'><img src='../treeImg/" + img + "' border='0'/></a></td></tr>"); sMemberTree.Append("<tr><td valign='top' colspan='3' align='center'><a href='tree.aspx?id=" + sponsorId + "&name=" + sponsorName + "&gender=" + sponsorGender + "'>" + sponsorName + "</a></td></tr>"); sMemberTree.Append("<tr><td valign='top' colspan='3' align='center'><a href='tree.aspx?id=" + sponsorId + "&name=" + sponsorName + "&gender=" + sponsorGender + "'>" + sponsorId + "</a></td></tr>"); sMemberTree.Append(" <tr style='height: 38px;'>"); sMemberTree.Append(" <td valign='top' align='left' colspan='3' style='background-image: url(../treeImg/downlineOn.jpg);background-repeat: no-repeat; background-attachment: scroll; background-position: center center'></td></tr>"); sMemberTree.Append(" <tr><td align='center' valign='top' style='width:48%'>"); #region "Create New Table Left for Ist Level Employees." sMemberTree.Append(" <div style='width:450px;height:250px; overflow: auto ;valign:top'>"); sMemberTree.Append(" <table class='genelogyTree' border='0' cellspacing= '5' cellpadding='3' style='width:100%'><tr>"); for (int i = 0; i < dtb.Rows.Count; i++) { if (CommonFunctions.GetShortKitName(Convert.ToString(dtb.Rows[i]["VmemLeftRightPos"]), 1).ToString() == "L") { switch (dtb.Rows[i]["VmemLeftRightPos"].ToString()) { case "L20": { goto GETVALUE; break; } case "L19": { goto GETVALUE; break; } case "L18": { goto GETVALUE; break; } case "L17": { goto GETVALUE; break; } case "L16": { goto GETVALUE; break; } case "L15": { goto GETVALUE; break; } case "L14": { goto GETVALUE; break; } case "L13": { goto GETVALUE; break; } case "L12": { goto GETVALUE; break; } case "L11": { goto GETVALUE; break; } case "L10": { goto GETVALUE; break; } case "L9": { goto GETVALUE; break; } case "L8": { goto GETVALUE; break; } case "L7": { goto GETVALUE; break; } case "L6": { goto GETVALUE; break; } case "L5": { goto GETVALUE; break; } case "L4": { goto GETVALUE; break; } case "L3": { goto GETVALUE; break; } case "L2": { goto GETVALUE; break; } case "L1": { goto GETVALUE; break; } } GETVALUE: { name = dtb.Rows[i]["VmemName"].ToString(); id = dtb.Rows[i]["VmemId"].ToString(); gender = dtb.Rows[i]["VmemGender"].ToString(); img = gender == "Male" ? "male.jpg" : "female.jpg"; } sMemberTree.Append("<td valign='top' align='center' ><a href='tree.aspx?id=" + id + "&name=" + name + "&gender=" + gender + "'><img src='../treeImg/" + img + "' border='0'/></a><br/><a href='tree.aspx?id=" + id + "&name=" + name + "&gender=" + gender + "'> " + CommonFunctions.GetShortMemberName(Convert.ToString(name), 10).ToString() + "</a> <br/> <a href='tree.aspx?id=" + id + "&name=" + name + "&gender=" + gender + "'>" + id + "</a> <br/><span>" + dtb.Rows[i]["VmemLeftRightPos"].ToString() + "<br/></span> </td>"); } } sMemberTree.Append("</tr></table>"); sMemberTree.Append("</div>"); #endregion sMemberTree.Append(" </td><td></td><td align='center' valign='top' style='width:48%'>"); #region "Create New Table Right for Ist Level Employees." sMemberTree.Append(" <div style='width:450px;height:250px; overflow: auto ;valign:top'>"); sMemberTree.Append(" <table class='genelogyTree' border='0' cellspacing= '5' cellpadding='3'><tr>"); for (int i = 0; i < dtb.Rows.Count; i++) { if (CommonFunctions.GetShortKitName(Convert.ToString(dtb.Rows[i]["VmemLeftRightPos"]), 1).ToString() == "R") { switch (dtb.Rows[i]["VmemLeftRightPos"].ToString()) { case "R20": { goto GETRIGHTVALUE; break; } case "R19": { goto GETRIGHTVALUE; break; } case "R18": { goto GETRIGHTVALUE; break; } case "R17": { goto GETRIGHTVALUE; break; } case "R16": { goto GETRIGHTVALUE; break; } case "R15": { goto GETRIGHTVALUE; break; } case "R14": { goto GETRIGHTVALUE; break; } case "R13": { goto GETRIGHTVALUE; break; } case "R12": { goto GETRIGHTVALUE; break; } case "R11": { goto GETRIGHTVALUE; break; } case "R10": { goto GETRIGHTVALUE; break; } case "R9": { goto GETRIGHTVALUE; break; } case "R8": { goto GETRIGHTVALUE; break; } case "R7": { goto GETRIGHTVALUE; break; } case "R6": { goto GETRIGHTVALUE; break; } case "R5": { goto GETRIGHTVALUE; break; } case "R4": { goto GETRIGHTVALUE; break; } case "R3": { goto GETRIGHTVALUE; break; } case "R2": { goto GETRIGHTVALUE; break; } case "R1": { goto GETRIGHTVALUE; break; } } GETRIGHTVALUE: { name = dtb.Rows[i]["VmemName"].ToString(); id = dtb.Rows[i]["VmemId"].ToString(); gender = dtb.Rows[i]["VmemGender"].ToString(); img = gender == "Male" ? "male.jpg" : "female.jpg"; } sMemberTree.Append("<td valign='top' align='center' colspan='2' ><a href='tree.aspx?id=" + id + "&name=" + name + "&gender=" + gender + "'><img src='../treeImg/" + img + "' border='0'/></a><br/><a href='tree.aspx?id=" + id + "&name=" + name + "&gender=" + gender + "'> " + CommonFunctions.GetShortMemberName(Convert.ToString(name), 10).ToString() + "</a> <br/> <a href='tree.aspx?id=" + id + "&name=" + name + "&gender=" + gender + "'>" + id + "</a> <br/><span>" + dtb.Rows[i]["VmemLeftRightPos"].ToString() + "</span> </td>"); } } sMemberTree.Append("</tr></table>"); sMemberTree.Append("</div>"); #endregion } else { sMemberTree.Append("<td valign='bottom' align='center'><div style='font-family:Arial Rounded MT Bold; font-size: 1.8em; font-weight: bold; color: #A11815; letter-spacing: 1px; word-spacing: 1.5px;background-position: center top; font-family: 'Arial Rounded MT Bold'; font-size: 15pt; font-weight: bold; color: #A11815; letter-spacing: 1px; word-spacing: 1.5px; background-image: url('../img/inactiveBack.jpg'); background-repeat: no-repeat; background-attachment: scroll; width: 750px; height: 200px;'><br/><br/><br/>Dear Member you are still INACTIVE.</div><br/><br/><br/><br/><br/><br/>"); } sMemberTree.Append("</td></tr></table>"); return sMemberTree.ToString(); }

and this is for tree details

and this is for tree details

protected string treeDetail() { StringBuilder sMemberTree = new StringBuilder(); sMemberTree.Append(" <center><table class='genelogyCount' width='700px' cellspacing='5' cellpadding='3' style='border: 1px double #FF3300; '>"); if (webFactory.getUser(Session.SessionID).IsActive) { Int32 leftCount = 0, rightCount = 0; for (int i = 0; i < dtb.Rows.Count; i++) { if (CommonFunctions.GetShortKitName(Convert.ToString(dtb.Rows[i]["VmemLeftRightPos"]), 1).ToString() == "L") { leftCount++; } else if (CommonFunctions.GetShortKitName(Convert.ToString(dtb.Rows[i]["VmemLeftRightPos"]), 1).ToString() == "R") { rightCount++; } } sMemberTree.Append("<tr><td class='field'>Member Name</td><td class='valueTD'>" + CommonFunctions.GetShortMemberName(Convert.ToString(sponsorName), 12).ToString() + "</td><td class='field'>Member Id</td><td class='valueTD'>" + sponsorId + "</td></tr>"); sMemberTree.Append("<tr><td class='field'>Left Members</td><td class='valueTD'>" + leftCount + "</td><td class='field'>Right Members</td><td class='valueTD'>" + rightCount + "</td></tr>"); sMemberTree.Append("</table></center><br/>"); } return sMemberTree.ToString(); }

protected string treeDetail() { StringBuilder sMemberTree = new StringBuilder(); sMemberTree.Append(" <center><table class='genelogyCount' width='700px' cellspacing='5' cellpadding='3' style='border: 1px double #FF3300; '>"); if (webFactory.getUser(Session.SessionID).IsActive) { Int32 leftCount = 0, rightCount = 0; for (int i = 0; i < dtb.Rows.Count; i++) { if (CommonFunctions.GetShortKitName(Convert.ToString(dtb.Rows[i]["VmemLeftRightPos"]), 1).ToString() == "L") { leftCount++; } else if (CommonFunctions.GetShortKitName(Convert.ToString(dtb.Rows[i]["VmemLeftRightPos"]), 1).ToString() == "R") { rightCount++; } } this should help u.. sMemberTree.Append("<tr><td class='field'>Member Name</td><td class='valueTD'>" + CommonFunctions.GetShortMemberName(Convert.ToString(sponsorName), 12).ToString() + "</td><td class='field'>Member Id</td><td class='valueTD'>" + sponsorId + "</td></tr>"); sMemberTree.Append("<tr><td class='field'>Left Members</td><td class='valueTD'>" + leftCount + "</td><td class='field'>Right Members</td><td class='valueTD'>" + rightCount + "</td></tr>"); sMemberTree.Append("</table></center><br/>"); } return sMemberTree.ToString(); }

更多推荐

C#中的树级显示

本文发布于:2023-11-30 06:42:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1649056.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!