PDA

View Full Version : نحوه ساخت منوی داینامیک



raika17metal
جمعه 20 دی 1392, 12:14 عصر
با سلام خدمت دوستان عزیز، در صورت امکان به من توضیح بدید چطور میشه منوهای سایت رو طوری طراحی کرد که منوها و زیر منوها از بانک اطلاعاتی خونده بشه.

ZivehDesigne
جمعه 20 دی 1392, 13:07 عصر
دوست عزیز برای ساخت منوهای داینامیک معمولا از فایل xml استفاده میشه( روش استفاده از xml رو هم می تونی با جستجو در اینترنت یاد بگیری)، مزیت آن نسبت به پایگاه داده اینه که اطلاعات سریع تر از این فایل خونده میشه چون این فایل یک بانک اطلاعاتی از نوع ساختاری است و اطلاعات رو بصورت ساختار درختی ذخیره می کنه و میشه بعدا ازش تو نقشه سایت هم استفاده کرد...

kablayi
جمعه 20 دی 1392, 14:59 عصر
یه تکه کد مینویسم شما شبیه این خودتون منوتون رو بسازید...

protected void Page_Load(object sender, EventArgs e)
{
//get data from database
DataTable dt = GetDataMenu();

//create menu tag for show in design...
string tagMenu = "<ul class=\"menu\">";
for (int i = 0; i < dt.Rows.Count; i++)
{
tagMenu += "<li class=\"menuName\"><a href=\"redirect.aspx?id=" + dt.Rows[i][0].ToString() + "\">" + dt.Rows[i][1].ToString() + "</a></li>";
}
tagMenu += "</ul>";

//add menu codes in to Literal control for show
Literal1.Text = tagMenu;
}


زیرمنو ها هم با for تودرتو قابل ساخت هست...

elahe471
جمعه 20 دی 1392, 15:55 عصر
اینجا رو ببینید (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&highlight=%D9%85%D9%86%D9%88+%D8%AF%D8%A7%DB%8C%D9 %86%D8%A7%D9%85%DB%8C%DA%A9) یه فایل pdf هست کامل توضیح داده شده

fakhravari
جمعه 20 دی 1392, 19:03 عصر
ساخت جدول.
CREATE TABLE [dbo].[TBLMenu](
[MenuID] [int] IDENTITY(1,1) NOT NULL,
[ParentID] [int] NULL,
[Text] [nvarchar](50) NULL,
[NavigateUrl] [nvarchar](200) NULL,
[Description] [nvarchar](200) NULL,
[ToolTip] [nvarchar](50) NULL,
CONSTRAINT [PK_TBLMenu] PRIMARY KEY CLUSTERED
(
[MenuID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET IDENTITY_INSERT [dbo].[TBLMenu] ON
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (6, NULL, N'گزارش گیری', N'Default.aspx?cat=6', NULL, N'گزارش گیری')
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (7, NULL, N'زبان برنامه نویسی', N'Default.aspx?cat=7', NULL, N'زبان برنامه نویسی')
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (8, 6, N'استیمولیت', N'sub/Default.aspx?cat=8', NULL, N'استیمولیت')
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (9, 6, N'کریستال', N'sub/Default.aspx?cat=9', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (11, 8, N'کریستال تحت PHP', N'sub/Default.aspx?cat=11', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (12, 8, N'استیمولیت تحت .NET', N'sub/Default.aspx?cat=12', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (13, 7, N'C++', N'sub/Default.aspx?cat=13', NULL, NULL)
INSERT [dbo].[TBLMenu] ([MenuID], [ParentID], [Text], [NavigateUrl], [Description], [ToolTip]) VALUES (14, 7, N'C#', N'sub/Default.aspx?cat=14', NULL, NULL)
SET IDENTITY_INSERT [dbo].[TBLMenu] OFF
/****** Object: ForeignKey [FK_TBLMenu_TBLMenu] Script Date: 01/10/2014 18:47:15 ******/
ALTER TABLE [dbo].[TBLMenu] WITH CHECK ADD CONSTRAINT [FK_TBLMenu_TBLMenu] FOREIGN KEY([ParentID])
REFERENCES [dbo].[TBLMenu] ([MenuID])
GO
ALTER TABLE [dbo].[TBLMenu] CHECK CONSTRAINT [FK_TBLMenu_TBLMenu]
GO

قسمت html
<asp:Menu ID="Menu1" DataSourceID="xmlDataSource" runat="server" BackColor="#FFFBD6"
DynamicHorizontalOffset="2" Font-Names="Verdana" ForeColor="#990000" StaticSubMenuIndent="10px"
StaticDisplayLevels="1">
<DataBindings>
<asp:MenuItemBinding DataMember="MenuItem" NavigateUrlField="NavigateUrl" TextField="Text"
ToolTipField="ToolTip" />
</DataBindings>
<StaticSelectedStyle BackColor="#FFCC66" />
<StaticMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<DynamicMenuStyle BackColor="#FFFBD6" />
<DynamicSelectedStyle BackColor="#FFCC66" />
<DynamicMenuItemStyle HorizontalPadding="5px" VerticalPadding="2px" />
<DynamicHoverStyle BackColor="#990000" Font-Bold="False" ForeColor="White" />
<StaticHoverStyle BackColor="#990000" Font-Bold="False" ForeColor="White" />
</asp:Menu>
<asp:XmlDataSource ID="xmlDataSource" TransformFile="~/TransformXSLT.xsl" XPath="MenuItems/MenuItem"
runat="server" />
قسمت کد
using System;
using System.Xml;
using System.Data;
using System.Data.SqlClient;

public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
using (SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=TableHome;Integrated Security=True"))
{
SqlDataAdapter da = new SqlDataAdapter("SELECT [MenuID],[ParentID],[Text],[NavigateUrl],[ToolTip],[Description]FROM [TBLMenu]", conn);
da.Fill(ds);
da.Dispose();
}
ds.DataSetName = "Menus";
ds.Tables[0].TableName = "Menu";
DataRelation relation = new DataRelation("ParentChild",
ds.Tables["Menu"].Columns["MenuID"],
ds.Tables["Menu"].Columns["ParentID"], true);
relation.Nested = true;
ds.Relations.Add(relation);
xmlDataSource.Data = ds.GetXml();
//if (Request.Params["Sel"] != null)
// Page.Controls.Add(new System.Web.UI.LiteralControl("You selected " + Request.Params["Sel"]));
}
}

fakhravari
جمعه 20 دی 1392, 19:21 عصر
رای راست به چپ
http://www.microsoft.com/middleeast/msdn/Asp2_menu.aspx
<asp:Menu ID="Menu1" DataSourceID="xmlDataSource" runat="server" BackColor="#FFFBD6"
DynamicHorizontalOffset="2" Font-Names="Verdana" ForeColor="#990000" StaticSubMenuIndent="10px"
StaticDisplayLevels="1" DynamicPopOutImageUrl="~/Menu_Popout.gif" StaticPopOutImageUrl="~/Menu_Popout.gif">
عکس
http://www.microsoft.com/middleeast/msdn/images/Menu_Popout.gif

EnKamran
چهارشنبه 09 بهمن 1392, 02:20 صبح
خدمت شما : لینک (http://sadin.ir/Article/3/%D8%B3%D8%A7%D8%AE%D8%AA-%D9%85%D9%86%D9%88%DB%8C-%D8%AA%D9%88-%D8%AF%D8%B1-%D8%AA%D9%88-%D9%86%D8%A7%D9%85%D8%AD%D8%AF%D9%88%D8%AF-%D8%A8%D8%AF%D9%88%D9%86-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-tr)