PDA

View Full Version : سوال: نحوه ایجاد زیرمنو با Repeater در Asp.net



moonfa1392
یک شنبه 17 آبان 1394, 06:50 صبح
سلام
من یه سایت کامل نوشتم که همه چیز رو از دیتابیس میخونه و حالا میخوام برای منو ها زیرمنو بذارم
Table مربوط به منو توی دیتابیس 7 تا سطر داره :
Mnu_Title = نام منو
Mnu_Link = آدرس منو
Mnu_PosID = کد محل قرارگیری منو
Mnu_PID = کد پدر (جهت دسترسی در پنل مدیر یا منشی)
Mnu_Order = ترتیب منو
حالا من توی فایل Main.aspx داخل div مربوط به منو کد زیر رو نوشتم :
<ul>
<asp:repeater ID="Repeater1" runat ="server" >
<ItemTemplate>
<li>
<"a href='<%# Eval ("Mnu_Link) %) '>
<%# Eval ("Mnu_Title )
<a\>
<li\>
<ItemTemplate\>
<asp:repeater \>
<ul\>
حالا داخل فایل Main.ascx یک public void تعریف کردم و داخلش دستور select رو نوشتم و به دیتابیس اتصال دادم. دستور select رو هم به صورت زیر نوشتم :
select * from tbl_menu where mnu_posid=1 order by mnu_order asc
و تا اینجای کار درسته و هیچ مشکلی نداره اما مشکل اصلیم اینجاس که نمیتونم به منو ها زیرمنو بدم. برای زیر منو قاعدتا باید یک ul داخل Li باز کنم و دوباره داخلش با Li زیرمنو هارو بذارم اما نمیدونم چه دستوری باید بنویسم.
من کد زیر رو تست کردم اما وقتی خروجی گرفتم متوجه شدم زیر منو به همه منو ها اضافه شده:
<ul>
<asp:repeater ID="Repeater1" runat ="server" >
<ItemTemplate>
<li>
<"a href='<%# Eval ("Mnu_Link) %) '>
<%# Eval ("Mnu_Title )
<a\>
<ul>
<asp:repeater ID="Repeater2" runat ="server" >
<ItemTemplate>
<li>
<"a href='<%# Eval ("Mnu_Link) %) '>
<%# Eval ("Mnu_Title )
<a\>
<li\>
<ItemTemplate\>
<asp:repeater \>
<ul\>
<li\>
<ItemTemplate\>
<asp:repeater \>
<ul\>

لطفا راهنمایی کنیدبگید چجوری زیر منو بذارم و چه کدی بنویسم واقعا گیج شدم.
شرمنده اگه کد هارو نا مرتب گذاشتم و بد نوشتم چون با گوشی تاپیک زدم بهتر از این نشد بنویسم. همین هم به سختی نوشتم
ممنون