PDA

View Full Version : سوال: ریختن لیستی از فرزندان یک Node



hastiam
چهارشنبه 14 تیر 1391, 16:54 عصر
سلام
چطوری می تونم اسامی تمام فرزندهای یک Node خاص رو در یک آرایه از نوع string بریزم.
مثلا Node "کامپیوتر" که شامل "سخت افزار" ، "نرم افزار" است و هر کدام از اینها هم دارای زیرشاخه هایی هستند چطور میشه با استفاده از روش Linq همه زیر شاخه هایی که مثلا در "شاخه نرم افزار" هستند رو گرفت و در یک آرایه ریخت؟
من تا یک سطح رو راحت می تونم بگیرم و در آرایه بریزم اما سطح بعدی رو نمیدونم چطور بریزم. تا اونجایی که من میدونم باید از یک تابع بازگشتی استفاده کنم ولی چه تابعی بنویسم؟

Saman Hashemi
چهارشنبه 14 تیر 1391, 21:47 عصر
شما قبل از اضافه کردن Node به TreeView در سطح اول باید تابع بازگشتی را صدا بزنی که تمام Node ها را اضافه کنه...!
public TreeNode ChildBind(TreeNode child)
{
//select rows with child value
foreach (var item in collection)
{
TreeNode node = new TreeNode();
node.Text = collection.Text;
node.Value = collection.Value;
ChildBind(node);
child.ChildNodes.Add(node);
}
return child;
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//select rows
foreach (var item in collection)
{
TreeNode node = new TreeNode();
node.Text = collection.Text;
node.Value = collection.Value;
ChildBind(node);
TreeView1.Nodes.Add(node);
}
}
}

hastiam
شنبه 17 تیر 1391, 08:26 صبح
دوست عزیز ممنونم از پاسخگوییتون.
دستوراتی که نوشتید برای وقتیه که می خواهیم TreeView رو پر کنیم که من TreeView رو پر کردم فقط می خوام وقتی یکی از شاخه ها رو که انتخاب کردم ID آن شاخه همراه با ID زیرشاخه هاش رو ، در یک آرایه یک بعدی بریزم که نمیدونم چه کار کنم؟

na3er-faraji
شنبه 17 تیر 1391, 15:01 عصر
id خود نود رو با selectednode بخون. بعد با یک foreach فرزندانش رو بخون که توی پراپرتی childnode قرار داره. موفق باشید.