PDA

View Full Version : سوال: منوی داینامیک



asiehmohammadian
سه شنبه 28 بهمن 1393, 10:18 صبح
سلام به همه دوستان
من یک منوی جی کوئری و بااستفاده از رپیتر وکد زیر داینامیک کردم


<asp:ScriptManager ID="script" runat="server"></asp:ScriptManager> <asp:UpdatePanel ID="update" runat="server"> <ContentTemplate> <div class="leftpanel"> <asp:Repeater ID="repeater1" runat="server" OnItemDataBound="repeater1_ItemDataBound"> <HeaderTemplate> <div class="leftmenu"> <ul class="nav nav-tabs nav-stacked"> <li class="nav-header">منو نرم افزار</li> </HeaderTemplate> <ItemTemplate> <li class="dropdown"><a href="#"><span class="iconfa-folder-open"></span><%#Eval("Menuname") %></a> <asp:Literal ID="litral1" runat="server"></asp:Literal> </li> </ItemTemplate> <FooterTemplate> </ul> </div> <!--leftmenu--> </FooterTemplate> </asp:Repeater> </div> </ContentTemplate> </asp:UpdatePanel>

ودر قسمت کد بیهاند دارم :

DataTable allCategories = new DataTable();
protected void Page_Load(object sender, EventArgs e)
{


if (!IsPostBack)
{
LoadCategories();
}
if (!IsPostBack)
}
private void LoadCategories()
{
allCategories = GetAllCategories();
repeater1.DataSource = GetCategories();
repeater1.DataBind();
}
private DataTable GetCategories()
{

SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;User Instance=True");
SqlCommand selectCommand = new SqlCommand("SELECT * FROM tblmenu WHERE ParentId=0", connection);
DataTable dt = new DataTable();
try
{
connection.Open();
SqlDataReader reader = selectCommand.ExecuteReader();
if (reader.HasRows)
{
dt.Load(reader);
}
reader.Close();
}
catch (SqlException)
{
throw;
}
finally
{
connection.Close();
}
return dt;
}
private DataTable GetAllCategories()
{
SqlConnection connection = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirector y|\Database.mdf;Integrated Security=True;User Instance=True");
SqlCommand selectCommand = new SqlCommand("SELECT * FROM tblmenu", connection);
DataTable dt = new DataTable();
try
{
connection.Open();
SqlDataReader reader = selectCommand.ExecuteReader();
if (reader.HasRows)
{
dt.Load(reader);
}
reader.Close();
}
catch (SqlException)
{
throw;


}
finally
{
connection.Close();
}
return dt;
}
protected void repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
if (allCategories != null)
{
DataRowView drv = e.Item.DataItem as DataRowView;
string ID = drv["Id"].ToString();
DataRow[] rows = allCategories.Select("ParentId=" + ID, "Menuname");
if (rows.Length > 0)
{
StringBuilder sb = new StringBuilder();
sb.Append("<ul>");
foreach (var item in rows)
{
//sb.Append("<li><a href=Default2.aspx?Id=>" + item["Menuname"] + "</a></li>");
sb.Append("<li><a href=Default2.aspx?Id=" + item["Id"] + ">" + item["Menuname"] + "</a></li>");
}
sb.Append("</ul>");
(e.Item.FindControl("litral1") as Literal).Text = sb.ToString();
}
}
}
}



حالا در صفحه مدیریتم وقتی مدیر منوی جدید ایجاد میکنه وصفحه رفرش میشه اون منوی جدید همون لحظه اضافه نمیشه وباید دوباره برنامه رو اجرا کنم تا اضافه بشه
باید چکار کنم که وقتی مدیر منوی جدید ایجاد کرد وصفحه رفرش شد تغییرات اعمال بشه ؟
دوستان خواهش میکنم راهنمایی کنید

Mohsen229266
سه شنبه 28 بهمن 1393, 11:06 صبح
سلام شما اگر از jquery استفاده میکنی که کار زیادی نداره میتونی بصورت web method دیتا رو بخونی و تو فایل js بصورت پویا منوت رو بسازی یا کم و زیادش کنی به همین راحتی اگر سوالی داشتی بپرس

asiehmohammadian
سه شنبه 28 بهمن 1393, 12:59 عصر
ممنون ولی باید ساختار به همین شکلی باشه که نوشتم
واین تصمیم مدیرپروژه هست
اگرلطف کنید باهمین ساختار راه حلی بهم بدید ممنون میشم

asiehmohammadian
سه شنبه 28 بهمن 1393, 19:36 عصر
دوستان خواهش می کنم یک راهنمایی بکنید فردا ارائه دارم :(