View Full Version : Expand شدن یک گره خاص
شهابسلطانی
چهارشنبه 25 مهر 1403, 13:34 عصر
156211سلام
دوستان فرض کنید من یه TreeViewدارم که از دیتابیس SQL پر میشه به شکل زیر :
گره اصلی : سال 1403
گروه دوم : فصل بهار
گره سوم : فروردین
اردیبهشت
خرداد
وقتی مثلا "خرداد" رو ویرایش میکنم طبیعتا بعد از ویرایش دوباره متد لودن شدن TreeView رو فراخوانی میکنم تا تغییرات آپدیت بشه
اما مشکل من اینجاست:
چطوری میتونم بعد از ویرایش شدن به همین نقطه از TreeView برگردم ؟؟؟؟؟؟؟؟؟؟؟؟؟ یعنی به گروه سوم
چون توی متد لود شدن Expand رو ننوشتم و کل TreeView باز Collapse میشه
اگر هم توی متد لود شدن Expand بنویسم همه گره ها باز میشن که درست نیست
لطفا راهنمایی کنید
ممنون
ROSTAM2
چهارشنبه 25 مهر 1403, 16:00 عصر
156211سلام
دوستان فرض کنید من یه TreeViewدارم که از دیتابیس SQL پر میشه به شکل زیر :
گره اصلی : سال 1403
گروه دوم : فصل بهار
گره سوم : فروردین
اردیبهشت
خرداد
وقتی مثلا "خرداد" رو ویرایش میکنم طبیعتا بعد از ویرایش دوباره متد لودن شدن TreeView رو فراخوانی میکنم تا تغییرات آپدیت بشه
اما مشکل من اینجاست:
چطوری میتونم بعد از ویرایش شدن به همین نقطه از TreeView برگردم ؟؟؟؟؟؟؟؟؟؟؟؟؟ یعنی به گروه سوم
چون توی متد لود شدن Expand رو ننوشتم و کل TreeView باز Collapse میشه
اگر هم توی متد لود شدن Expand بنویسم همه گره ها باز میشن که درست نیست
لطفا راهنمایی کنید
ممنون
سلام
روشی که در این نمونه پیش گرفتید اشتباه است!
چرا که بعد از ویرایش هر گره کافیه اطلاعات همون گره رو تغیر بدید....
و برای انتخاب یک گره هم خصوصیت SelectedNode از TreeView استفاده می شه بر اساس نام گره (خصوصیت Name ) یا Key البته سلسله مراتب گره باید رعایت بشه.
شهابسلطانی
چهارشنبه 25 مهر 1403, 16:16 عصر
سلام
روشی که در این نمونه پیش گرفتید اشتباه است!
چرا که بعد از ویرایش هر گره کافیه اطلاعات همون گره رو تغیر بدید....
و برای انتخاب یک گره هم خصوصیت SelectedNode از TreeView استفاده می شه بر اساس نام گره (خصوصیت Name ) یا Key البته سلسله مراتب گره باید رعایت بشه.
سلام
سپاس از شما بابت راهنمایی
میشه یک نمونه بگید چجوری اطلاعات همون گره رو تغییر بدم؟
این کدهای من هست
private void FillTreeView()
{
TRSeason.Nodes.Clear();
var q = db.Database.SqlQuery<View_TreeYears>("select* from View_TreeYears where Parent_Year=0 order by Num_Year Asc ");
var Result = q.ToList();
for (int i = 0; i < Result.Count; i++)
{
TreeNode season = new TreeNode(Result[i].Num_Year + " - " + Result[i].Name_Year);
var ftr = Result[i].Name_Year;
season.Tag = Result[i].ID_Year;
TRSeason.Nodes.Add(season);
LoadTreeviewNode(season);
season.ForeColor = Color.Blue;
season.Expand();
}
}
private void LoadTreeviewNode(TreeNode TN)
{
int TagInt;
TagInt = Convert.ToInt32(TN.Tag);
var q = db.Database.SqlQuery<View_TreeYears>("select* from View_TreeYears where Parent_Year ='" + TagInt + "' ");
var query = q.ToList();
if (query.Count >= 0)
{
for (int I = 0; I < query.Count; I++)
{
TreeNode M = new TreeNode();
M.Tag = query[I].ID_Year;
M.Text = query[I].Field2_Year + "" + query[I].Num_Year + " - " + query[I].Name_Year.Trim();
TN.Nodes.Add(M);
TN.ForeColor = Color.Red;
M.ForeColor = Color.Green;
int CH = Convert.ToInt32(query[I].ChildCount);
if (CH >= 0)
{
LoadTreeviewNode(M);
}
M = null;
}
}
}
ROSTAM2
چهارشنبه 25 مهر 1403, 19:12 عصر
برای تغییر یک گره باید ببینید چه مواردی برای ایجادش در نظر گرفتید طبق همون موارد مقدیر رو بروزرسانی کنید ینی همون Update
برای مثال با منوی راست کلیک ویرایش موارد قایل ویرایش فراخوانی می شن و در قیلد هایی برای ویرایش نمایش داده می شن:
156212
156213
با کلید تائید اطلاعات مورد انتخاب شده از دیتابیس بر اساس آی.دی که به Tag از گره اختصاص داده شده و همچنین اطلاعات قابل نمایش مثل متن از گره هم تغییر می کنه
156214
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.