1 ضمیمه
بایند اطلاعات دیتا ست به TreeView
سلام
من یه تیبل با ظاهر زیر دارم
که در واقع برای یه برنامه حسابداریه این تیبل سرفصل هاست که شامل اطلاعات کل و جزئ و معین و ... می باشد
البته این تصویر مال یه ویو از چهار تا تیبله می خوام سرغصل هامو تو TreeView نشون بدم یعنی اول کل ها و بعد فرزندان هر کل معین های مربوط به اون باشه و همینطور تا آخر
خیلی گیج شدم میشه راهنماییم کنید؟ ممنون
نقل قول: بایند اطلاعات دیتا ست به TreeView
من این کد رو پیدا کردم و به روش زیر اطلاعاتم رو به تری ویو بایند کردم
try
{
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=shahed_account;Integrated Security=True");
SqlDataAdapter da;
DataSet ds = new DataSet();
con.Open();
da = new SqlDataAdapter("SELECT * FROM uView4SathiSarfasl ORDER BY KolCode,MoinCode,TafziliCode,JozeCode", con);
da.Fill(ds);
foreach (DataRow row in ds.Tables[0].Rows)
{
if (row["KolTitle"].ToString() != "")
{
TreeNode treeNode1 = new TreeNode(row["JozeTitle"].ToString());
TreeNode treeNode2 = new TreeNode(row["TafziliTitle"].ToString(), new TreeNode[] { treeNode1 });
TreeNode treeNode3 = new TreeNode(row["MoinTitle"].ToString(), new TreeNode[] { treeNode2 });
TreeNode treeNode4 = new TreeNode(row["KolTitle"].ToString(), new TreeNode[] { treeNode3 });
treeView1.Nodes.AddRange(new TreeNode[] { treeNode4 });
}
}
con.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
حالا یه سوال؛ برای هر کدوم از نود هام چطور میتونم یه value در نظر بگیرم مثلاً برای نودی که KoleTitle رو نمایش میده مقدار KoleCode رو به عنوان value در نظر بگیره
سوال دیگه اینکه از کجا مقدار value و Text نود انتخاب شده و نود های پدرش رو بدست بیارم؟
خواهش می کنم راهنماییم کنید خیلی ضروریه:افسرده:
نقل قول: بایند اطلاعات دیتا ست به TreeView
یه همچین کدی منظورمه این کد فکر کنم برای asp.net باشه که تو C# جواب نداد
TreeNode node = new TreeNode();
node.Text = row["GroupName"].ToString();
node.Value = row["GroupID"].ToString();
نقل قول: بایند اطلاعات دیتا ست به TreeView
نقل قول: بایند اطلاعات دیتا ست به TreeView
نقل قول:
نوشته شده توسط
MortezaGity
راستش این مثاله کداش خیلی خیلی حرفه اییه من که چیزی سر در نیاوردم خودتون مثالی چیزی ندارید:گیج:
نقل قول: بایند اطلاعات دیتا ست به TreeView
1سرم به این سایت بزن
کلی مثال هم توش هست
اگه بازم حل نشد بم بگو :چشمک:
http://msdn.microsoft.com/en-us/libr....treenode.aspx
1 ضمیمه
نقل قول: بایند اطلاعات دیتا ست به TreeView
دوست عزیز
این برنامرو با دقت نگاه کن توضیحاتیم که توش نوشتم حتما مطالعه کن امیدوارم مشکلت حل شه.
ضمیمه 65240
نقل قول: بایند اطلاعات دیتا ست به TreeView
دوست عزیز TreeView ایونتی برای اینکه معلوم بشه کدوم نود کلیک شده نداره؟این برنامه ای که شما زحمتشو کشیدید خیلی از مشکلاتمو حل کرد غفط می خوام کاربر با کلیک روی هر سطح نود اطلاعات Text و Tag اون نود و نود های بالاییشو تو تکست باکس نشون بده یعنی به محض کلیک اطلاعاتو نشون بده که اگه اشتباه انتخاب کرده بود سریع بتونه نود درست رو انتخاب کنه
نقل قول: بایند اطلاعات دیتا ست به TreeView
چرا داره تو همون برنامه خوب نگاه کن متوجه میشی
از رخداد AfterSelect استفاده کن
این سایتم نگاه کن
http://msdn.microsoft.com/en-us/libr...terselect.aspx
نقل قول: بایند اطلاعات دیتا ست به TreeView
ببخشید یکم گیج میزنم
treeView1.Nodes[0].Text + treeView1.Nodes[0].Tag
می خوام جای اون صفره اندیس گره انتخاب شده رو بزارم ایونت selectedNode یا selectedItem یا ... نداشت راهی داره؟؟؟
نقل قول: بایند اطلاعات دیتا ست به TreeView
وقتو خود نود رو داری نیازی به ایندکسش نیست از کد زیر استفاده کن
private void TreeView1_AfterSelect(Object sender,
TreeViewEventArgs e)
{
string str = e.Node.Text + e.Node.Tag;
}
نقل قول: بایند اطلاعات دیتا ست به TreeView
خیلی ممنون تابع شما رو اینجوری تغییرش دادم درست شد، از لطفتون ممنون
void mGetChilds(List<string> strPath, int level)
{
try
{
TreeNode temp_node = treeView1.Nodes[strPath[0]];
if (level == 0)
{
textBox1.Text = temp_node.Tag.ToString();
textBox2.Text = temp_node.Text;
}
else if (level == 1)
{
textBox1.Text = temp_node.Tag.ToString();
textBox2.Text = temp_node.Text;
textBox4.Text = temp_node.Nodes[strPath[1]].Tag.ToString();
textBox3.Text = temp_node.Nodes[strPath[1]].Text.ToString();
}
else if (level == 2)
{
textBox1.Text = temp_node.Tag.ToString();
textBox2.Text = temp_node.Text;
textBox4.Text = temp_node.Nodes[strPath[1]].Tag.ToString();
textBox3.Text = temp_node.Nodes[strPath[1]].Text.ToString();
textBox6.Text = temp_node.Nodes[strPath[1]].Nodes[strPath[2]].Tag.ToString();
textBox5.Text = temp_node.Nodes[strPath[1]].Nodes[strPath[2]].Text.ToString();
}
else if (level == 3)
{
textBox1.Text = temp_node.Tag.ToString();
textBox2.Text = temp_node.Text;
textBox4.Text = temp_node.Nodes[strPath[1]].Tag.ToString();
textBox3.Text = temp_node.Nodes[strPath[1]].Text.ToString();
textBox6.Text = temp_node.Nodes[strPath[1]].Nodes[strPath[2]].Tag.ToString();
textBox5.Text = temp_node.Nodes[strPath[1]].Nodes[strPath[2]].Text.ToString();
textBox8.Text = temp_node.Nodes[strPath[1]].Nodes[strPath[2]].Nodes[strPath[3]].Tag.ToString();
textBox7.Text = temp_node.Nodes[strPath[1]].Nodes[strPath[2]].Nodes[strPath[3]].Text.ToString();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}
نقل قول: بایند اطلاعات دیتا ست به TreeView
خواهش میکنم
فقط یه موضوعی هست.
اینی که شما نوشتی چیز خوبیه البته فقط برای برنامه ای که داری مینویسی
چون انعطاف پذیر نیست. مثلا اگه تعداد لایه ها بیشتر بشه نمیتونی از این روش استفاده کنی.
ولی بهرحال برای کارت روش خوبیه (;
بازم اگه سوالی واست پیش اومد در خدمتم
نقل قول: بایند اطلاعات دیتا ست به TreeView
بله درسته ولس چون خیلی فوری بود مجبور شدم
بهر حال ممنون خیلی لطف کردید