نمایش درختی اطلاعات دیتابیس به شکل پدر و فرزند مانند treeview
برای نمایش زیر مجموعه های یک سازمان از درخت استفاده بشه مانند
تری ویو .(اما تری ویو خاصیت دیتا سورس ندارد تا بتونم ابه بانک اتصالش بدم)
البته میخام با کلیک روی نام واحد ،نام سرپرست واحد نیز در روبروی ان نمایش داده بشه
1 ضمیمه
نقل قول: نمایش درختی اطلاعات دیتابیس به شکل پدر و فرزند مانند treeview
این کلاس رو من قبلا نوشتم شاید به دردت بخوره. Table باید یه ستون id یه ستون Name و یه ستون ParentId داشته باشه. برای استفاده از این کلاس باید یه TreeView روی فرم داشته باشی و اطلاعاتی هم که می خوای به کاربر در قالب درخت نشون بدی داخل یه DataTable بریزی. بعد هم به صورت زیر کلاس رو صدا بزن:
ShowTreeView(TreeView1,DT);
ضمیمه 68935
نقل قول: نمایش درختی اطلاعات دیتابیس به شکل پدر و فرزند مانند treeview
دوست عزیز سلام
من کلاس شمارو دانلود کردم
اما تو کلاس یک ParentId هست که نامعلومه؟!
میشه بیشتر توضیح بدید
ممنون
نقل قول: نمایش درختی اطلاعات دیتابیس به شکل پدر و فرزند مانند treeview
منظورم از اون ParentId اسم ستونیه که توی DataTable به عنوان ستون Parent در نظر گرفته شده. توی BindData سطرهایی که ParentId برابر صفر دارند رو پیدا می کنیم و در حلقه For ضمن اضافه کردن اونا به TreeView فرزندانشون به صورت Recursive توسط FindChildNodes پیدا شده و به TreeView اضافه می شوند.
public class ShowTreeView
{
private TreeView TreeView1 = new TreeView();
private DataTable DT;
public ShowTreeView(TreeView TV, DataTable DT)
{
TreeView1 = TV;
TreeView1.Nodes.Clear();
this.DT = DT;
BindData();
}
private void BindData()
{
DataView ParentRows = new DataView(DT);
ParentRows.RowFilter = "ParentId=0";
for (int i = 0; i < ParentRows.Count; i++)
{
TreeNode tn = new TreeNode();
tn.Tag = ParentRows[i]["id"].ToString();
tn.Text = ParentRows[i]["Name"].ToString();
TreeView1.Nodes.Add(tn);
FindChildNodes(ParentRows[i]["id"].ToString(),TreeView1.Nodes[i]);
}
}
private void FindChildNodes(string ParentID, TreeNode TV)
{
DataView ChildRows = new DataView(DT);
ChildRows.RowFilter = "ParentId=" + ParentID;
for (int i = 0; i < ChildRows.Count; i++)
{
TreeNode tn = new TreeNode();
tn.Tag = ChildRows[i]["id"].ToString();
tn.Text = ChildRows[i]["Name"].ToString();
TV.Nodes.Add(tn);
FindChildNodes(ChildRows[i]["id"].ToString(), TV.Nodes[i]);
}
}
}
نقل قول: نمایش درختی اطلاعات دیتابیس به شکل پدر و فرزند مانند treeview
سلام چرا این خط اررور میده:
TV.Nodes.Add(tn);
'System.Xml.Linq.Extensions.Nodes<T>(System.Collec tions.Generic.IEnumerable<T>)' is a 'method', which is not valid in the given context
نقل قول: نمایش درختی اطلاعات دیتابیس به شکل پدر و فرزند مانند treeview
sسلام دوباره خودم متوجه شدم باید اینطوری بنویسیم :
TV.ChildNodes.Add