PDA

View Full Version : سوال: خواندن منو و زیرمنوهای مرتبط از دیتابیس



ahmadhasani
سه شنبه 29 مرداد 1392, 23:09 عصر
سلام. من تو سایت ، یک منو دارم که تشکیل شده از تعدادی UL و LI. سیستمش هم به این صورت هست که مثلآ منوی کفش های ورزشی ، دوتا زیرمنو داره تحت عنوان های زنانه و مردانه. یا مثلآ منوی کفش های مجلسی ، سه تا زیرمنو داره تحت عناوین زنانه ، مردانه و بچه گانه. دقیقآ همین عکس!
109405
توی این عکس ، من همه مجموعه ها و زیرمجموعه ها رو دستی وارد کردم. حالا می خوام از دیتابیس بخونم. اینم بگم که مجموعه ها توی جدولی به اسم Colls و زیرمجموعه ها تو جدول دیگه ای به نام SubColls ذخیره شدن. البته مشکل اصلی ، خوندن اطلاعات از دیتابیس نیست. مشکل اصلی اینه که نمیتونم زیرمجموعه های مرتبط با هرمجموعه رو بارگذاری کنم! یعنی می تونم مثلآ «کفش ایمنی» رو از دیتابیس بخونم ، اما نمیدونم چکار کنم که زیرمجموعه های مرتبطش ، بارگذاری بشه.
لطفآ راهنمایی کنید.

mohammad kafiyan
چهارشنبه 30 مرداد 1392, 02:33 صبح
برای این کار کفی شما بیای یک جدول به نام
id,name,url,parentid
در نظر بگیری و به راحتی منو و زیر منوهای بی نهایت تولید کنی

ahmadhasani
چهارشنبه 30 مرداد 1392, 11:27 صبح
برای این کار کفی شما بیای یک جدول به نام
id,name,url,parentid
در نظر بگیری و به راحتی منو و زیر منوهای بی نهایت تولید کنی
میشه یکم بیشتر توضیح بدی؟ خب من دوتا جدول دارم برای گروه ها و زیرگروه ها. بعد چطور تفکیک کنم؟

saeed_sho
یک شنبه 14 مهر 1392, 17:48 عصر
اگه برنلمه داره کار میکنه خب یه جدول سومی درست کنید که اسمش فرق کنه و parentId داشته باشه و منو رو با اون درست کنید و آخر سر دوتا جدول اول و حذف کنید
منوهای اولین سطح parentId 0 میگیرن و بقیه که زیرمنوی اونها هستند در parentId مقدار آی دی identity منوهای پدرو میگیرن و همینطور الی آخر
یه تاپیک بود که bftarane ایجاد کرده بودن و بطور مفصل درباره این منوها بحث شده بود اتفاقا منم در اون تاپیک پست گذاشته بودم اما در بین پست هام نبود چون خیلی قدیمی بود

saeed_sho
دوشنبه 15 مهر 1392, 19:59 عصر
منظورتونو متوجه نشدم ولی جدول منوی من اینجوریه
CREATE TABLE [dbo].[menu](
[id] [bigint] IDENTITY(1,1) NOT NULL,
[title] [nvarchar](max) NULL,
[url] [varchar](max) NULL,
[pid] [bigint] NULL,
[rank] [smallint] NULL,
[userLevel] [varchar](max) NULL,
CONSTRAINT [PK_menu] PRIMARY KEY CLUSTERED
(
[id] ASC
)) ON [PRIMARY]

mohammad kafiyan
دوشنبه 15 مهر 1392, 22:46 عصر
اینها property ها چی هستند؟؟؟


[rank] [smallint] NULL, [userLevel] [varchar](max) NULL,

saeed_sho
سه شنبه 16 مهر 1392, 15:00 عصر
فیلد rank برای اینه که موقع select زدن sort میکنیم که کدوم بالاتر باشه و در واقع براساس این فیلد order by میزنیم
فیلد userLevel برای تشخیص اینه که منو برای مدیره یا کاربره عضوه یا کاربر مهمان

543310
سه شنبه 16 مهر 1392, 16:12 عصر
راه ساده ترش به نظر من اینه که از sqlDataSource و Reapeter استفاده کنی... Reapeter تو در تو. من این کارو کردم...

fakhravari
سه شنبه 16 مهر 1392, 16:59 عصر
http://barnamenevis.org/showthread.php?95687-%D9%85%D9%82%D8%A7%D9%84%D9%87-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D9%86%D9%88-%D8%AF%D8%A7%DB%8C%D9%86%D8%A7%D9%85%DB%8C%DA%A9-%D8%AF%D8%B1-ASP.NET
http://barnamenevis.org/showthread.php?198677-%DA%86%D8%B1%D8%A7-%D8%B2%DB%8C%D8%B1-%D9%85%D9%86%D9%88-%D9%87%D8%A7-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D8%AF%D8%A7%D8%AF%D9%87-%D9%86%D9%85%DB%8C-%D8%B4%D9%88%D9%86%D8%AF-%D8%9F-(%D9%85%D9%86%D9%88-%D9%85%D8%AA%D8%B5%D9%84-%D8%A8%D9%87-%D8%AF%DB%8C%D8%AA%D8%A7%D8%A8%DB%8C%D8%B3)

bitcob589
سه شنبه 16 مهر 1392, 17:14 عصر
راه ساده ترش به نظر من اینه که از sqlDataSource و Reapeter استفاده کنی... Reapeter تو در تو. من این کارو کردم...

درباره نحوه کار بیشتر توضیح نمایید اگر امکان دارد یک سمپل بگذارید

fakhravari
سه شنبه 16 مهر 1392, 17:26 عصر
توی سایت با کلمه داینامیک کردن منو بگردید.

543310
پنج شنبه 18 مهر 1392, 14:38 عصر
چون دیتا بیسم حذف شده بود نتونستم سورس رو بذارم...


<div id="navbarFrame">
<div id="cssmenu">
<ul>
<li><a href="Default.aspx"><span>خانه</span></a></li>
<asp:Repeater OnItemDataBound="ItemBound" ID="rptItem" runat="server">
<ItemTemplate>
<li id="SecondLevelMenuItems" class="has-sub">
<a href='<%#Eval("CatId","ArticleShowCats.aspx?CatId={0}") %>'><span><%#DataBinder.Eval(Container.DataItem,"CatTitle") %></span></a>
<ul>
<asp:Repeater ID="rptSubItem" runat="server">
<ItemTemplate>
<li class="has-sub"><a href='<%#Eval("SubCatId","ArticleShowSubCats.aspx?SubCatId={0}") %>'><span><%#Eval("SubCatTitle") %></span></a></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</li>
</ItemTemplate>
</asp:Repeater>
<li class="has-sub">
<a href="Order.aspx"><span>سفارش پروژه</span></a>
</li>
<li class="has-sub">
<a href="About.aspx"><span>درباره ما</span></a>
</li>
<li class="has-sub">
<a href="Contact.aspx"><span>تماس با ما</span></a>
</li>
</ul>
</div>
</div>



protected void ItemBound(object sender, RepeaterItemEventArgs rptItem)
{
tblSubCat = new DataTable();
Repeater rptSubItem = (Repeater)rptItem.Item.FindControl("rptSubItem");
tblSubCat = data.ShowSubCats(int.Parse(tblCat.Rows[i]["CatId"].ToString()));
rptSubItem.DataSource = tblSubCat;
rptSubItem.DataBind();
i++;
}