PDA

View Full Version : سوال: منوی پویا



monika
سه شنبه 25 مرداد 1390, 19:10 عصر
سلام من می خوام سایتم منوهای پویا داشته باشه یعنی کاربر وقتی یک متن رو در یک text box قرار می ده اون متن به عنوان نام آیتم منو و اون لینکی که در text box دیگه وارد کرده به عنوان navigation url ذخیره شه من چطور می تونم این کاررو انجام بدم .البته لازم به ذکره که با دیتابیس انجام دادم اما واسه اضافه کردن زیر منو مشکل دارم
این کدو می زنم همون نام منو رو به زیر منوی همه منو هام اضافه می کنه
(++for (int a = 0; a <= t.Rows.Count-1 ; a
}
;()string k = t.Rows[a][0].ToString
;()string o = t.Rows[a][1].ToString
;(MenuItem i = new MenuItem(k, k, "", o
;(Menu1.Items.Add(i

}
هم چنین من تو sql چهارتا فیلد دارم که شامل نام منوی اصلی،url منوی اصلی،نام زیر منو،urlزیر منو هستش اما در این دستور t.Rows[a][0].ToStringواسه اندیس rowsاز 0تا1 روفقط می شناسه و ستون مربوط به زیر منو رو نمی خونه یعنی این دستورو می دم error میده
t.Rows[a][3].ToString یعنی نام زیر منو از رکورد a ام رو می خوام می زنه ستون شماره سه پیدا نشد

ASPX
چهارشنبه 26 مرداد 1390, 08:06 صبح
یکی از ستون های جدولت باید parentId باشه ؟آیا اون ستون رو داری
ای ها رو ببنین
http://aspalliance.com/822
موقع ساخت از یک treeview استفاده کن که ساختار رو بهت بده
http://www.codeproject.com/KB/aspnet/DataTreeView.aspx

monika
چهارشنبه 26 مرداد 1390, 13:46 عصر
سلام دوست گرامی ممنون از پاسختون
من parent id ندارم .هر موقع از دیتا تیبل استفاده می کنم و دستور [][]table.rowsرواستفاده می کنم داخل اندیس های آرایه ام تا عدد 1 رو بیشتر ساپورت نمی کنه .امکان این هست که من موقع ساخت جدول در sql کاری رو اشتباه انجام می دم که موجب بروز این خطا بشه

monika
جمعه 28 مرداد 1390, 01:37 صبح
سلام من یک table با 4 گزینه Menu Id ,Parent ID,Text,Descriptionطیق دستوراتی که در لینک داده بودید ساختم و کد مربوط رو در code behind بصورت زیر تغغیر دادم برنامه جواب داد مهم دونستم که اونا در اختیار دوستانی که مثل من در منوی پویا مشکل دارن قرار بدم

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml;
using System.Data.SqlClient;
public partial class cms : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
string connStr = "Data Source=AMIN-9573569458;Initial Catalog=test;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(connStr))
{
string sql = "Select MenuID, Text,Description, ParentID from Menu";
SqlDataAdapter da = new SqlDataAdapter(sql, 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);
DataView dw = new DataView(ds.Tables["Menu"]);
for (int r = 0; r <= dw.Table.Rows.Count - 1; r++)
{
if (dw.Table.Rows[r]["ParentID"].ToString() == "0")
{
string k = dw.Table.Rows[r]["Text"].ToString();
string o = dw.Table.Rows[r]["Description"].ToString();
MenuItem master = new MenuItem(k, k, "", o);
Menu1.Items.Add(master);
for (int t = r; t <= dw.Table.Rows.Count - 1; t++)
{
if (dw.Table.Rows[t]["ParentID"].ToString () !="0")
{
string u = dw.Table.Rows[t]["ParentID"].ToString();
string a = dw.Table.Rows[r]["MenuID"].ToString();
if (a == u)
{
string k1 = dw.Table.Rows[t]["Text"].ToString();
string o1 = dw.Table.Rows[t]["Description"].ToString();
MenuItem det = new MenuItem(k1, k1, "", o1);
master.ChildItems.Add(det);
}
}//End if a=u
}//end for a
}//main if

}//mqin for
}
}

smm2006sh
جمعه 28 مرداد 1390, 12:38 عصر
سلام دوست من
میتونی از این منو که به صورت tree view هست استفاده کنی
http://www.upload4files.tk/download.php?file=37cb6e9cd455e26959f4bdff34d176cb
منبع : how2learnasp.net