PDA

View Full Version : سوال: مشکل در رسم گره های فرزند TreeView



ButterFly
شنبه 08 بهمن 1390, 00:48 صبح
سلام دوستان عزیز.منو treeView انگار قرار نیست همدیگه رو ول کنیم.
برای کدی که دارم تا حالا که identify کد جدولم Yes بود رسم treeview درست بود.اما به دلیل نیازی که داشتم identify کد رو No کردم.حالا فقط گره پدر رو رسم میکنه و هیچ خبری از رسم فرنداش نیست! میشه بگید باید چه تغییری توی کد بدم؟
ممنون
private void treeview_refresh()
{
DataTable dt = new DataTable();
dt = intCls.fillListview();
treeView1.BeginUpdate();
treeView1.Nodes.Clear();
CreateTreeView(treeView1.Nodes, 0, dt);
treeView1.Select();
treeView1.EndUpdate();
}

void CreateTreeView(TreeNodeCollection parentNode, int parentID, DataTable mytab)
{
foreach (DataRow dta in mytab.Rows)
{
if (Convert.ToInt32(dta["Fa_ZonCode"]) == parentID)
{

String key = dta["ZonCode"].ToString();
String text = dta["ZonTitle"].ToString();
TreeNodeCollection newParentNode = parentNode.Add(key, text, 0).Nodes;
CreateTreeView(newParentNode, Convert.ToInt32(dta["ZonCode"]), mytab);
}
}
}

modern_amin
شنبه 08 بهمن 1390, 09:42 صبح
موقع افزودن child حتما باید پدر اون رو مشخص کنی و یا تو حالت انتخاب باشه

zarrinnegar
شنبه 08 بهمن 1390, 10:30 صبح
این کد رو تست کن

private TreeView tView = new TreeView();
public void PopulateTree()

{

DataTable dt = new DataTable();
Hashtable ht = new Hashtable();
SqlConnection conn = new SqlConnection("data source=tstsvr;initial catalog=TreeTest;integrated security=SSPI;");

new SqlDataAdapter("SELECT * FROM Nodes ORDER BY NodeLevel Asc", conn).Fill(dt);
foreach (DataRow r in dt.Rows)
{
int nodeLvl = int.Parse(r["NodeLevel"].ToString());
string nodeParent = r["Parent"].ToString();
string nodeName = r["Name"].ToString();

TreeNode tNode = new TreeNode(nodeName);
ht.Add(nodeLvl.ToString() + nodeName, tNode);

if (tView.Nodes.Count == 0)
tView.Nodes.Add(tNode);
else
{
nodeLvl --;
((TreeNode) ht[nodeLvl.ToString() + nodeParent]).Nodes.Add(tNode);
}
}
ht.Clear();
}

ButterFly
شنبه 08 بهمن 1390, 11:43 صبح
دوست عزیز zarinnegar ممنون از پاسختون.
من با این کدها آشنایی ندارم.میشه بگید باید نام treeview خودمو کجا بزارم یا جایگزین کنم که تغییرات روی اون اعمال بشه؟

ButterFly
یک شنبه 09 بهمن 1390, 11:01 صبح
دوستان عزیز چرا به این قسمت مشکلم که میرسم دیگه کسی جواب نمیده؟:ناراحت: