Fa استفاده از پلاگین شی درختی در برنامه (tree object)

hrs192

Member
سلام دوستان
من یک شی درختی ایجاد کردم به این صورت

نام نویسنده (یا دسته بندیه کتب) > کتاب ها > جلد ها یا فصل ها > موضوعات

میخوام وقتی کاربر روی آخرین طبقه زیر مجموعه ها (موضوعات) دابل کلیک میکنه یه لینک به آبجکت html بده و بروزر صفحه مربوط باز کنه
در واقع باید برای همه موضوعات یک لینک تعریف کنم
فقط توی نوشتن کد های، اسکریپت EventHandler در پلاگین شی درختی موتوجه نشدم باید چیکار کنم تا به هدفم برسم !!


راستی اینکه در اسکریپت برای هر نود زیر مجموعه، یه لینک تعریف بشه درست هست ؟ راه استاندارد تری هم داره ؟
چون تعداد موضوعات بسیار زیاده
به نظر شما میشه کل دسته بندی شی درختی و لینکهای مربوط را وارد یک دیتا بیس کرد که بعدا اگر خواستیم یه کتاب به مجموعه اضافه کنیم راحتر باشیم؟
به صورتی که دسته بندی درختیمون به صورت خودکار از روی دیتا بیس ساخته بشه و کار کنه!!!
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
راه اصولیش همونی هست که گفتید، تو دیتابیس داده ها رو وارد کنید و ارتباطشون رو با هم مشخص کنید، که مثلاً بتونید تشخیص بدید کدوم آیتم ها زیر مجموعه ی یه آیتم دیگه هستن

در یک حلقه باید داده ها رو از دیتابیس بخونید و به لیست درختی اضافه کنید.
توضیحات انجام اینکار در حلقه هم در مثال پلاگین موجود هست

اینطوری کد EventHandler هم ساده تر میشه چون مستقیم به دیتابیس ارتباطش میدید.
 

hrs192

Member
اگر یه تیبل با 5 تا ستون بسازم بهتره یا برایه هر لول یه تیبل باشه که به هم ربط پیدا کنن ؟
میشه بگین دستورات
EventHandler چی میشه ؟
 
آخرین ویرایش:

hrs192

Member
کسی نیست ما را راهنمایی کنه تو این قضیه شی درختی و دیتابیس
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
همه ی آیتم ها رو در یک جدول بزارید و با یه فیلد آیتم پدر رو مشخص کنید
parenttitleid
0General1
1Option One2
1Option Two3
0Advanced4
آیتم هایی که parent برابر 0 هست، گره های اصلی هستن که زیر مجموعه ی هیچ عنصری نیستن
آیتم هایی که parent بزرگتر از 0 هست، زیر مجموعه ی آیتمی هستن که id اون برابر مقدار فیلد parent هست
الان تو این جدول، Option One و Option Two زیر مجموعه ی General هست و آیتم های General و Advanced خودشون گره های اصلی هستن.

باید با یک حلقه دیتابیس رو پیمایش کنید و یکی یکی عناصر رو در محل مناسب اضافه کنید، برای همین نیاز هست که هنگام نوشتن Query برای دیتابیس نتایج رو بر اساس فیلد parent دسته بندی کنید (ORDER BY parent ASC)

دقیقاً خاطرم نیست که در اسکریپت EventHandler برای هر آیتمی که انتخاب میشد چه پارامترهایی دریافت میشد، اما اطمینان دارم میشه در این اسکریپت هر آیتم رو با فیلد id اون در دیتابیس (که unique هست) مرتبط کرد.
 

hrs192

Member
همه ی آیتم ها رو در یک جدول بزارید و با یه فیلد آیتم پدر رو مشخص کنید
parenttitleid
0General1
1Option One2
1Option Two3
0Advanced4
آیتم هایی که parent برابر 0 هست، گره های اصلی هستن که زیر مجموعه ی هیچ عنصری نیستن
آیتم هایی که parent بزرگتر از 0 هست، زیر مجموعه ی آیتمی هستن که id اون برابر مقدار فیلد parent هست
الان تو این جدول، Option One و Option Two زیر مجموعه ی General هست و آیتم های General و Advanced خودشون گره های اصلی هستن.

باید با یک حلقه دیتابیس رو پیمایش کنید و یکی یکی عناصر رو در محل مناسب اضافه کنید، برای همین نیاز هست که هنگام نوشتن Query برای دیتابیس نتایج رو بر اساس فیلد parent دسته بندی کنید (ORDER BY parent ASC)

دقیقاً خاطرم نیست که در اسکریپت EventHandler برای هر آیتمی که انتخاب میشد چه پارامترهایی دریافت میشد، اما اطمینان دارم میشه در این اسکریپت هر آیتم رو با فیلد id اون در دیتابیس (که unique هست) مرتبط کرد.
خیلی خوب.. اینجوری میشه درخت را ساخت
حالا لینک هایی که به نود های رده پایین جدول مربوط هستند و نباید در درخت نمایش داده بشند کجا ثبت میشن ؟
همون لینک هایی که با کلیک روی نود فرستاده میشن به مرورگر!
 

nevercom

کاربر متخصص انجمن مولتی مدیا بیلدر
خب من به ازای هر رکورد سه تا فیلد قرار دادم (بخونید هر سطر سه تا ستون داره)، هر رکورد مربوط به یک آیتم هست. شما میتونید هرچندتا فیلد دیگه لازمه اضافه کنید
مثلاً فیلد لینک رو اضافه کنید، فیلد title همونیه که نمایش داده میشه، فیلد parent برای تشخیص محل قرارگیری آیتم هست و نمایش داده نمیشه، فیلد id برای شناسایی هر رکورد هست و جایی نمایش داده نمیشه
 

hrs192

Member
فقط میمونه کد ها و اسکریپت هایی که باید در رابطه با شی درختیمون ایجاد بشه ..
دارم روش فکر میکنم ولی فعلا به نتیجه ای نرسیدم ... دستورات اون حلقه را نمیدونم چطور باید بنویسم (تو کد نویسی خیلی ضعیفم)
ایشالا آماده شد پروژه های نرم افزار ساخت دیتا بیس و نرم افزار اصلی را ارائه میکنم

نمونه تیبل دیتا بیس

linkparenttitleid
00General1
01General - part one2
http://www.yahoo.com2Option One3
http://www.google.com2Option Two4
00Advanced5
 

Prof.Khojasteh

New Member
با سلام؛ البته لازم دونستم یه نکته ای رو اینجا اضافه کنم که این جدول برای تعداد داده های زیاد بهینه بودنش رو از دست میده .
به خاطر اینکه هر کلید مشخص کننده زیر مجموعه به خود جدول بر می گرده , بهتره که برای دسترسی ها از دو تا جدول استفاده بشه . (آی دی پرنت در واقع داره به جدول خوده چیلد ها میره)
 

جدیدترین ارسال ها

بالا