PDA

View Full Version : مقاله: ایجاد RadTreeView با استفاده از سه جدول به صورت سلسله مراتبی



ce_safdari
سه شنبه 11 مرداد 1390, 13:16 عصر
سلام خدمت دوستان عزیز

در این مقاله با استفاده از سه جدول ، می خواهیم یک جدول سلسله مراتبی درست کنیم ، که در کنترل 73199RadTreeView بسیار کاربرد دارد.
فرض کنید، 3 جدول باید ایجاد کنید که با یکدیگر ارتباط یک به چند دارند.مانند تصویر.
برای این کار باید با یک پروسیجر این سه جدول را تبدیل به یک جدول کنیم.و آن را به کنترل مربوطه متصل کنیم.


select Null ParentId,Tbl1ID+100000 Tbl1ID ,Tbl1Name as 'DataTextField','NULL;'+cast( Tbl1ID as varchar(10)) nodpath from Table1

union
select Table2.Tbl1ID+100000 ParentId,Tbl2ID+ 50000 Tbl2ID,Tbl2Name, 'NULL;'+cast(Tbl1ID as varchar(10))+';'+cast(Tbl2ID as varchar(10)) nodpath from Table2
union
select t3.Tbl2ID+200000 ParentId,Tbl3ID+ 60000 Tbl3ID ,Tbl3Name,'NULL;'+cast(t1.Tbl1ID as varchar(10))+';'+cast(t2.Tbl2ID as varchar(10))+';'+cast(Tbl3ID as varchar(10)) nodpath from Table3 t3
inner join Table2 t2 on t3.Tbl2ID=t2.Tbl2ID
inner join Table1 t1 on t2.Tbl1ID=t1.Tbl1ID


ابتدا به هر جدول مطابق بالا کوییری می زنیم و آن ها را union از هم جدا می کنیم.
چون کنترل RadTreeView ،فیلد پدر(parent) را به صورت NULL می شناسد، بنابراین ما در اولین انتخاب Null parentID را می نویسیم.
در RadTree View فیلد ها مطابق زیر قرار می دهیم.

parentId=ParentId

DataFieldId= Tbl1ID در واقع خروجی دوم کوییری
DataTextField=DataTextField که خروجی سوم کوییری می باشد.
nodpath برای راهنمایی بیشتر ارتباط ها قرار داده شده است.این فیلد را لازم نیست به کنترل تلریک اضافه کنید.