ورود

View Full Version : سوال: نمونه برنامه طراحي منو به صورت پويا



yasmeen
چهارشنبه 13 آذر 1387, 09:53 صبح
من در پروژه ام مي خوام به صورت پويا وقتي كاربري صفحهاي ايجاد كرد هر صفحه اي كه خواست به منو و يا زير منو به صورت پويا ايجاد شود كه اطلاعات فرمها را از ديتابيس بخونه تقريبا شبيه cms dotnetnuke لطفا كمكم كنيد جستجو هم كردم ولي به نتيجه اي نرسيدم لطفا اگر نمونه برنامه داريد برام بزاريد ممنونم

yasmeen
چهارشنبه 13 آذر 1387, 10:28 صبح
لطفا اگر كسي مي دونه جواب بده ممنونم

dalaho
چهارشنبه 13 آذر 1387, 10:49 صبح
شما بايد پس از ايجاد هر صفحه و آدرس آن صفحه و مكاني كه مي خواهيد در نمايش داده شود (زير منو) را در ديتا بيس نگه داري و باتوجه به پدر هر صفحه فرزندان آن هم ساخته ميشه

yasmeen
چهارشنبه 13 آذر 1387, 11:03 صبح
ميشه يك مثال بزنيد در مورد اضافه شدن menu و sub menu به صورت خودكار آيا برنامه اي داريد اگه بزاريد ممنمونم

Behrouz_Rad
چهارشنبه 13 آذر 1387, 11:43 صبح
اگر آشنایی اولیه با XML آشنایی داشته باشی دنیا به کامت شیرین میشه!
کافیه که سلسله مراتب منوها رو در یک فایل XML ذخیره کنی و از طریق XmlDataSource به یک منو بایندش کنی.
البته من کد به کسی نمیدم. گوگل و MSDN راهنمای خوبی هستند.

موفق باشید.

kiosksoft
چهارشنبه 13 آذر 1387, 11:46 صبح
سلامU همانطور که آقای راد اشاره فرمودند با XML ,براحتی میشه این کار رو انجام داد اما اگه بلد نیستید از دیتابیس استفاده کنید
نمونه دارم اما نمیتونم آپلود کنم,نمیدونم چرا!
یک جدول بسازید که سه تا فیلد داشته باشه :
[ChartTempID] [int] IDENTITY(1,1) NOT NULL,[ChartTempParentID] [int] NOT NULL,[ChartTempName] [nvarchar](100)


protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { fillDrp(); PopulateRootLevel(); } }
void fillDrp() { DatabaseClasses dbClass = new DatabaseClasses(); dbClass.FillDrop2Field(DropChartTempParentID, "ChartTempName", "ChartTempID", "ChartTempTbl"); DropChartTempParentID.Items[0].Value = null; }
private void PopulateRootLevel() { DataTable dt = new DataTable(); TreeView1.Nodes.Clear(); string sql = "select ChartTempID,ChartTempName,(select count(*) FROM ChartTempTbl WHERE ChartTempParentID = sc.ChartTempID) childnodecount FROM ChartTempTbl sc where ChartTempParentID = 0"; DatabaseClasses dbClass = new DatabaseClasses(); dt=dbClass.GetDTWithSql(sql); PopulateNodes(dt, TreeView1.Nodes); fillDrp(); }
private void PopulateSubLevel(int parentid, TreeNode parentNode) { DataTable dt = new DataTable(); string sql = "select ChartTempID,ChartTempName,(select count(*) FROM ChartTempTbl WHERE ChartTempParentID=sc.ChartTempID) childnodecount FROM ChartTempTbl sc where ChartTempParentID=" +parentid.ToString(); DatabaseClasses dbClass = new DatabaseClasses(); dt=dbClass.GetDTWithSql(sql); PopulateNodes(dt, parentNode.ChildNodes); }
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e) { PopulateSubLevel(Int32.Parse(e.Node.Value), e.Node); }
private void PopulateNodes(DataTable dt, TreeNodeCollection nodes) { foreach (DataRow dr in dt.Rows) { TreeNode tn = new TreeNode(); tn.Text = dr["ChartTempName"].ToString(); tn.Value = dr["ChartTempID"].ToString(); nodes.Add(tn); tn.PopulateOnDemand = ((int)(dr["childnodecount"]) > 0); } }
protected void btnAdd_Click(object sender, EventArgs e) { int val=0; try { val =int.Parse(DropChartTempParentID.SelectedItem.Valu e); } catch { val = 0; } string sqlInsert="INSERT INTO ChartTempTbl (ChartTempParentID ,ChartTempName) VALUES "; sqlInsert += " (" + val + ",N'" + txtChartTempName.Text.Trim() +"') "; DatabaseClasses dbClass = new DatabaseClasses(); dbClass.ExecuteSQL(sqlInsert); fillDrp(); PopulateRootLevel(); }

yasmeen
چهارشنبه 13 آذر 1387, 11:49 صبح
ميشه با ميلم بفرستي yasmeen_1383@yahoo.com ممنونم

yasmeen
چهارشنبه 13 آذر 1387, 11:57 صبح
ببخشيد من منو به صورت افقي مي خواستم مثل خود منو .net فقط اطلاعاتش را ار بانك بانك بخونه و به صورت پويا باشد

Behrouz_Rad
چهارشنبه 13 آذر 1387, 12:01 عصر
افقی عمودیش که فقط جنبه ی ظاهری داره و در نحوه ی ذخیره ی داده ها در دیتابیس تاثیری نداره.
کد برادر asp.net.csharp.ir رو بررسی نکردم چون به هم ریخته ست ولی اگه می تونی از XML استفاده کنی خیلی بهتره.

موفق باشید.

yasmeen
چهارشنبه 13 آذر 1387, 12:16 عصر
مي شه يك نمونه بفرستيد چون من زياد xml بلد نيستم در ضمن من منو را با صورت افقي مي خواهم در treeview اين امكان وجود دارد؟

yasmeen
چهارشنبه 13 آذر 1387, 12:45 عصر
من منو را بصورت افقي مي خواهم مگه در TreeView بصورت افقي ميتوان انجام داد ؟

kiosksoft
چهارشنبه 13 آذر 1387, 12:54 عصر
دوست عزیز روش نمایش فرقی نمیکنه.

شما از کنترل منو استفاده کنید, من در این مثال از treeveiw استفاده کردم .

yasmeen
پنج شنبه 14 آذر 1387, 10:18 صبح
کسی نداره!!!!!!!!!!!!!!
من خودم یکی نوشتم ولی نمی دونم تابع را چه طوری به menu ربطش بدم؟

Saber_Fatholahi
پنج شنبه 14 آذر 1387, 23:29 عصر
یه سر به این لینک بزن مارو هم دعا کن
http://aspalliance.com/822_Building_a_Database_Driven_Hierarchical_Menu_u sing_ASPNET_20
امیدوارم کارت راه بیفته