PDA

View Full Version : حرفه ای: منو داینامیک



hamid_kha
چهارشنبه 12 تیر 1392, 11:59 صبح
با سلام خدمت دوستان عزیز:چشمک:

بنده در حال طراحی یک منو داینامیک هستم که اطلاعات را از دیتابیس میگیره و با Css و ul و li طراحی شده بدین صورت که تیترهای اصلی را نشان میده اما مشکلی که دارم این است که میخوام زیر تیتر هر کدام از این تیترهای اصلی رو وقتی ماوس میره روش هم نشون بده

کد html:


<asp:EntityDataSource ID="dsPageGroups" runat="server" ConnectionString="name=eshopEntities"
DefaultContainerName="eshopEntities" EnableFlattening="False" EntitySetName="PageGroups"
EntityTypeFilter="PageGroups">
</asp:EntityDataSource>
<asp:LinqDataSource ID="dsPages" runat="server" ContextTypeName="eShop.Model.eShopEntities"
EntityTypeName="" TableName="Pages" Where="PageGroupID== @PageGroupID" OrderBy="PageDate Desc"
OnSelecting="dsPages_Selecting">
</asp:LinqDataSource>

<ul id="menu-main-nav">
<li><a href="Default.aspx"><span><strong>صفحه اصلی</strong></span></a> </li>
<li><a href="#"><span><strong>گالری تصاویر</strong></span></a>
<ul class="sub-menu">
<li class="child"><a href="#"><span>تصاویر</span></a></li>
<ul class="child-menu">
<li><a href="#"><span>تصویر 1</span></a></li>
<li><a href="#"><span>تصویر 2</span></a></li>
<li><a href="#"><span>تصویر 3</span></a></li>
<li><a href="#"><span>تصویر 1</span></a></li>
<li><a href="#"><span>تصویر 2</span></a></li>
<li><a href="#"><span>تصویر 3</span></a></li>
<li><a href="#"><span>تصویر 1</span></a></li>
<li><a href="#"><span>تصویر 2</span></a></li>
<li><a href="#"><span>تصویر 3</span></a></li>
</ul>
<li><a href="#"><span>فیلم شرکت</span></a></li>
</ul>
</li>
<li><a href="#"><span><strong>محصولات</strong></span></a>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="dsPageGroups">
<HeaderTemplate>
<ul class="sub-menu">
</HeaderTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
<ItemTemplate>
<li class="child">
<asp:HyperLink ID="hlPageGroup" runat="server" NavigateUrl='<%# Page.GetRouteUrl("PageGroups", new { pagegroupid = Eval("PageGroupID"), pagegrouptitle = Eval("PageGroupTitle") }) %>'><span><%# Eval("PageGroupTitle") %></span></asp:HyperLink>
</li>
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="dsPages">
<HeaderTemplate>
<ul class="child-menu">
</HeaderTemplate>
<FooterTemplate>
</ul>
</FooterTemplate>
<ItemTemplate>
<li>
<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Page.GetRouteUrl("PageDetails", new { pagegrouptitle = Eval("PageGroupTitle"),pageid = Eval("PageID"), pagetitle = Eval("PageTitle") }) %>'>
<span> <%# Eval("PageTitle") %></span></asp:HyperLink>
</li>
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
</li>
<li><a href="#"><span><strong>خدمات</strong></span></a>
<ul class="sub-menu">
<li><a href="#"><span>خدمات 1</span></a></li>
<li><a href="#"><span>خدمات 2</span></a></li>
<li><a href="#"><span>خدمات 3</span></a></li>
</ul>
</li>
<li><a href="#"><span><strong>عضویت در خبرنامه</strong></span></a> </li>
<li><a href="#"><span><strong>درباره شرکت</strong></span></a> </li>
</ul>
جداول:
Pagesشامل:PageID,PageGroupID,PageTitle,PageTex t
PageGroupsشامل:PageGroupTitle,PageGroupID
##########################################
در واقع گزینه های سرویس بهداشتی و تجهیزات و سرامیک و سنگ از بانک خونده میشه و میخوام وقتی ماوس روی "سنگ" رفت زیر منوهای آن را نمایش بده!

ممنون میشم راهنماییم کنیم:چشمک:

hamid_kha
پنج شنبه 13 تیر 1392, 17:47 عصر
از دوستان واقعا کسی نیست که به ما یه راهنمایی کنه!!
نمونه هایی را در فروم دیدم ولی بدردم نخورد:افسرده:

hamid_kha
جمعه 21 تیر 1392, 22:38 عصر
سلام خدمت دوستان عزیز
دوستان بنده با این کد به نتیجه رسیدم و بار اول که پروژه را اجرا میکنم لینکها درست عمل میکنه اما وقتی به صفحات دیگه میرم چون ار تگ a استفاده شده فهیمدم که Url را تغییر نمیده چون سمت سرور نیست
حالا من اومدم خواستم از hyperlink خود Asp استفاده کنم که بازم جواب نداد
حالا من تو فکر اینم که یه کاری کنم که چون از UrlRouting استفاده کنم یه جوری هر وقت صفحه لود شد Url رو ریست کنم.
دوستان نظری ندارند:متفکر::چشمک:

imanasp
شنبه 22 تیر 1392, 00:05 صبح
سلام خدمت دوستان عزیز
دوستان بنده با این کد به نتیجه رسیدم و بار اول که پروژه را اجرا میکنم لینکها درست عمل میکنه اما وقتی به صفحات دیگه میرم چون ار تگ a استفاده شده فهیمدم که Url را تغییر نمیده چون سمت سرور نیست


ببینید اگه تگ a رو توی یک div بزارین مشکلتون حل میشه:

<div Runat=Server"> <a .........

hamid_kha
شنبه 22 تیر 1392, 12:59 عصر
مرسی
اینکار رو کردم ولی بازم جواب نداد.

url باید وقتی روی هر گزینه میریم به این صورت باشه:107133
در صورتی که اگر 1 بار دیگه روی همین گزینه بریم Url به این شکل میشه:107134
در واقع 27/ اضافی ایجاد میکنه:عصبانی++:
از دوستان کسی نیست یه راهنمایی بکنه:چشمک:

Cybersilent
شنبه 22 تیر 1392, 15:40 عصر
سلام .
ببین این کلاس بهت کمک می کنه؟
البته منوی عمودی هست که باید استایلش رو به صورت افقی تغییر بدهید.

نحوه استفاده :


MenuBuilder menuBuilder = new MenuBuilder();
ICollection<MenuItemList> menuItems = new Collection<MenuItemList>();
// Fill menuItems list
Literal_Menu.Text = menuBuilder.CreateMenu(menuItems);

hamid_kha
شنبه 22 تیر 1392, 16:15 عصر
سلام .
ببین این کلاس بهت کمک می کنه؟
البته منوی عمودی هست که باید استایلش رو به صورت افقی تغییر بدهید.

نحوه استفاده :


MenuBuilder menuBuilder = new MenuBuilder();
ICollection<MenuItemList> menuItems = new Collection<MenuItemList>();
// Fill menuItems list
Literal_Menu.Text = menuBuilder.CreateMenu(menuItems);


میشه بیشتر توضیح بدید
من اطلاعات رو از بانک میخونم(linq) و میخوام توی منو نشون بده:چشمک:

Cybersilent
یک شنبه 23 تیر 1392, 09:11 صبح
به کلاس MenuBuilder نگاه کنید.
شما از هر جا که اطلاعات رو می خونید می تونید این لیست رو پر کنید.
من خودم با SqlDataReader اطلاعات رو از بانک می خونم و لیست menuItems رو پر می کنم.
کلاس MenuBuilder هم فقط یک html حاوی کدهای منو به شما میده.
مثلا

MenuItemList defaultPage = new MenuItemList
{
Id = Guid.NewGuid(),
OwnerId = Guid.Empty,
Text = "صفحه اصلی",
Page = "Default.aspx"
};
menuItems.Add(defaultPage);