PDA

View Full Version : مشکل در ساخت منو



hesamsword
پنج شنبه 02 مرداد 1393, 09:32 صبح
سلام دوستان من یه منو ساختم که منو پدرش درست کار میکنه اما وقتی بازش میکنم منوی فرزند منوی پدر نشون میده. من دو سه روزی هست روش گیرم خواهشا دوستانی که وارد هستند فایل دانلود کنن و اشکال کار بهم بگن یا اصلاحش کنن بفرستن.

121488

hesamsword
پنج شنبه 02 مرداد 1393, 09:34 صبح
اینم کدهاش
protected void Page_Load(object sender, EventArgs e) {
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(@"Data Source=.\sqlexpress;attachdbfilename=C:\USERS\HESA M\DOCUMENTS\VISUAL STUDIO 2010\PROJECTS\WEBAPPLICATION12\WEBAPPLICATION12\AP P_DATA\DATABASEMENU.MDF;integrated security=true; user instance=True");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("Select * From MenuTB", con);
da.Fill(ds);
DataTable table = ds.Tables[0];
DataRow[] parentMenus = table.Select("ParentId = 0");
var sb = new StringBuilder();
string unorderedList = GenerateUL(parentMenus, table, sb);
Response.Write(unorderedList);

}






private string GenerateUL(DataRow[] menu, DataTable table, StringBuilder sb)
{


sb.Append("<div id='cssmenu'>");
sb.AppendLine("<ul>");
if (menu.Length > 0)
{
foreach (DataRow dr in menu)
{
string handler = dr["Url"].ToString();
string menuText = dr["MenuName"].ToString();


string line = String.Format(@"<li class='has-sub'><a href='#'><span>{1}<span></a><ul><li><a href='#'><span>{0}<span></a></li></ul>", menuText, menuText);
sb.Append(line);








string pid = dr["PID"].ToString();
DataRow[] subMenu = table.Select(String.Format("ParentId = {0}", pid));
if (subMenu.Length > 0)
{
var subMenuBuilder = new StringBuilder();
sb.Append(GenerateUL(subMenu, table, subMenuBuilder));

}
sb.Append("</li>");
}
}
sb.Append("</ul>");
sb.Append("</div>");
return sb.ToString();
}

کد css
@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,600,300);@charset "UTF-8";
/* Base Styles */
#cssmenu,
#cssmenu ul,
#cssmenu li,
#cssmenu a {
margin: 0;
padding: 0;
border: 0;
list-style: none;
font-weight: normal;
text-decoration: none;
line-height: 1;
font-family: 'Open Sans', sans-serif;
font-size: 14px;
position: relative;
}
#cssmenu a {
line-height: 1.3;
}
#cssmenu {
width: 250px;
background: #fff;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
padding: 3px;
-moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.6);
-webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.6);
box-shadow: 0 0 5px rgba(0, 0, 0, 0.6);
}
#cssmenu > ul > li {
margin: 0 0 2px 0;
}
#cssmenu > ul > li:last-child {
margin: 0;
}
#cssmenu > ul > li > a {
font-size: 15px;
display: block;
color: #ffffff;
text-shadow: 0 1px 1px #000;
background: #565656;
background: -moz-linear-gradient(#565656 0%, #323232 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #565656), color-stop(100%, #323232));
background: -webkit-linear-gradient(#565656 0%, #323232 100%);
background: linear-gradient(#565656 0%, #323232 100%);
border: 1px solid #000;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
}
#cssmenu > ul > li > a > span {
display: block;
border: 1px solid #666666;
padding: 6px 10px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;
border-radius: 4px;
font-weight: bold;
}
#cssmenu > ul > li > a:hover {
text-decoration: none;
}
#cssmenu > ul > li.active {
border-bottom: none;
}
#cssmenu > ul > li.active > a {
background: #97be10;
background: -moz-linear-gradient(#97be10 0%, #79980d 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #97be10), color-stop(100%, #79980d));
background: -webkit-linear-gradient(#97be10 0%, #79980d 100%);
background: linear-gradient(#97be10 0%, #79980d 100%);
color: #fff;
text-shadow: 0 1px 1px #000;
border: 1px solid #79980d;
}
#cssmenu > ul > li.active > a span {
border: 1px solid #97be10;
}
#cssmenu > ul > li.has-sub > a span {
background: url(images/icon_plus.png) 98% center no-repeat;
}
#cssmenu > ul > li.has-sub.active > a span {
background: url(images/icon_minus.png) 98% center no-repeat;
}
/* Sub menu */
#cssmenu ul ul {
padding: 5px 12px;
display: none;
}
#cssmenu ul ul li {
padding: 3px 0;
}
#cssmenu ul ul a {
display: block;
color: #595959;
font-size: 13px;
font-weight: bold;
}
#cssmenu ul ul a:hover {
color: #79980d;
}

abbas.oveissi
پنج شنبه 02 مرداد 1393, 10:00 صبح
***************

( ببخشید اشتباه پست رو اینجا گذاشتم !!! اگر مدیران این پست رو دیدن حذف کنند. )

juza66
پنج شنبه 02 مرداد 1393, 10:10 صبح
برای من هم درست کار می کند مشکلش چی هست دوست عزیز؟!!!

hesamsword
پنج شنبه 02 مرداد 1393, 10:27 صبح
برای من هم درست کار می کند مشکلش چی هست دوست عزیز؟!!!
منوی فرزندش درست کار نمیکنه
یعنی وقتی منو رو باز میکنم دوباره پرنت منو رو نشون میده

abbas.oveissi
پنج شنبه 02 مرداد 1393, 10:53 صبح
این کد رو چک کنید :

protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;attachdbfilename=|DataDirector y|DatabaseMenu.mdf;integrated security=true;");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("Select * From MenuTB", con);
da.Fill(ds);
DataTable table = ds.Tables[0];
DataRow[] parentMenus = table.Select("ParentId = 0");
var sb = new StringBuilder();
sb.Append("<div id='cssmenu'>");


string unorderedList = GenerateUL(parentMenus, table, sb);
sb.Append("</div>");


Response.Write(unorderedList);

}




private string GenerateUL(DataRow[] menu, DataTable table, StringBuilder sb)
{


sb.AppendLine("<ul>");
if (menu.Length > 0)
{
foreach (DataRow dr in menu)
{
string handler = dr["Url"].ToString();
string menuText = dr["MenuName"].ToString();


string line = String.Format(@"<li class='has-sub'><a href='#'><span>{0}<span></a>", menuText);
sb.Append(line);
string pid = dr["PID"].ToString();
DataRow[] subMenu = table.Select(String.Format("ParentId = {0}", pid));
if (subMenu.Length > 0)
{
var subMenuBuilder = new StringBuilder();
sb.Append(GenerateUL(subMenu, table, subMenuBuilder));

}
sb.Append("</li>");
}
}
sb.Append("</ul>");
return sb.ToString();
}

hesamsword
پنج شنبه 02 مرداد 1393, 11:17 صبح
این کد رو چک کنید :

protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;attachdbfilename=|DataDirector y|DatabaseMenu.mdf;integrated security=true;");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("Select * From MenuTB", con);
da.Fill(ds);
DataTable table = ds.Tables[0];
DataRow[] parentMenus = table.Select("ParentId = 0");
var sb = new StringBuilder();
sb.Append("<div id='cssmenu'>");


string unorderedList = GenerateUL(parentMenus, table, sb);
sb.Append("</div>");


Response.Write(unorderedList);

}




private string GenerateUL(DataRow[] menu, DataTable table, StringBuilder sb)
{


sb.AppendLine("<ul>");
if (menu.Length > 0)
{
foreach (DataRow dr in menu)
{
string handler = dr["Url"].ToString();
string menuText = dr["MenuName"].ToString();


string line = String.Format(@"<li class='has-sub'><a href='#'><span>{0}<span></a>", menuText);
sb.Append(line);
string pid = dr["PID"].ToString();
DataRow[] subMenu = table.Select(String.Format("ParentId = {0}", pid));
if (subMenu.Length > 0)
{
var subMenuBuilder = new StringBuilder();
sb.Append(GenerateUL(subMenu, table, subMenuBuilder));

}
sb.Append("</li>");
}
}
sb.Append("</ul>");
return sb.ToString();
}

داداش دمت گرم درست شد فقط چرا منوی دومی css روش اجرا نمیشه؟
121490

abbas.oveissi
پنج شنبه 02 مرداد 1393, 12:14 عصر
داداش دمت گرم درست شد فقط چرا منوی دومی css روش اجرا نمیشه؟

برای من اینجوری نیست که بتونم بفهمم مشکل از چیه :متفکر: برای من دومیش هم درست باز میشه.دیتا هارو بیشتر کن بشه 3 تا منو ، بعد ببین باز آخری خرابه یا از دومی مشکل پیدا میکنه؟

hesamsword
پنج شنبه 02 مرداد 1393, 14:24 عصر
برای من اینجوری نیست که بتونم بفهمم مشکل از چیه :متفکر: برای من دومیش هم درست باز میشه.دیتا هارو بیشتر کن بشه 3 تا منو ، بعد ببین باز آخری خرابه یا از دومی مشکل پیدا میکنه؟

درست شد داداش دستت طلا
به مولا دعات میکنم

abbas.oveissi
پنج شنبه 02 مرداد 1393, 21:29 عصر
درست شد داداش دستت طلا
به مولا دعات میکنم
خواهش میکنم:لبخند: مشکل کد هم توی بخش باز بستن تگ ها بود.مثلا یکی از مشکلات تگ Div بود.باید بیرون اون متد میذاشتی که فقط یکبار تکرار بشه اما شما گذاشته بودید توی اون تابع و هر باز به ازای هر منو میومد اون تگ Div رو دورش میذاشت.

korosh00
جمعه 03 مرداد 1393, 10:23 صبح
سلام
با کلیک روی منوها لینکش کار نمیکنه .
چجوری لینک میشه

hesamsword
یک شنبه 05 مرداد 1393, 09:24 صبح
سلام
با کلیک روی منوها لینکش کار نمیکنه .
چجوری لینک میشه

بجای # آدرستو بزار
string line = String.Format(@"<li class='has-sub'><a href='#'><span>{0}<span></a>", menuText);

korosh00
یک شنبه 05 مرداد 1393, 14:06 عصر
مگه نباید از دیتابیس بخونه ؟
تو دیتابیس url را پر کردم ولی کلیک می کنم انجام نمیشه !

abbas.oveissi
دوشنبه 06 مرداد 1393, 05:04 صبح
مگه نباید از دیتابیس بخونه ؟
تو دیتابیس url را پر کردم ولی کلیک می کنم انجام نمیشه !
خب باید کد رو یکم عوض کنید ، احتمالا موقع تست این قسمت عوض شده. خط زیر رو پیدا کنید و این شکلی کنید :

stringline = String.Format(@"<li class='has-sub'><a href='{0}'><span>{1}<span></a>",handler , menuText);

حالا تست کنید و ببینید کار میکنه یا نه.

korosh00
دوشنبه 06 مرداد 1393, 10:27 صبح
الان من توی اون قسمت که به صورت دستی درست کردید و لینک گذاشتید این آدرس رو دارم
<li class='active'><a href='pp12.aspx'><span>صفحه اصلی</span></a></li>
روش کلیک می کنم کار میکنه .
ولی من تو دیتابیس در قسمت url گذاشتم default.aspx و وقتی روش کلیک می کنم میره از ریشه دنبالش می گرده و به صفحه نمیره .
من تو قسمت url نحوی تعریف صفحه رو چجوری بگذارم اونی که در نمونه خودتون هست همینیه که نوشتم و باید لینک رو کاملتر بنویسم تا
بره تو صفحه .
مثلا باید بنویسم
menu/default.aspx که بره تو صفحه دیفالت
اگر بنویسم default.aspx که خودتون هم در دیتابیس نوشتید نمیره به صفحه دیفالت .

ممنون

korosh00
جمعه 10 مرداد 1393, 20:16 عصر
تشکر حل شد .
خیلی ممنون بابت زحماتتون .
حالا اگر امکانش هست مدل های مختلف و حرفه ای هم بگذارید از منو داینامیک نامحدود .

korosh00
چهارشنبه 22 مرداد 1393, 21:03 عصر
سلام
لطفا بفرمایید چطور این منو ها رو راست چین کنیم .؟
ممنون