Wie Erstellen Sie Dynamische Menüs aus der Datenbank mittels Menü-Steuerung im asp.net?
Ich möchte ein Menü erstellen, aus der Datenbank und zeigen Sie im Menü Steuerung.
Code Hier in .aspx-Seite:
<asp:Menu ID="Menu1" Orientation="horizontal" StaticMenuItemStyle-CssClass="menuItem"
DynamicMenuItemStyle-CssClass="menuItem" runat="server">
In .cs-Seite von Master:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
populateMenuItem();
}
}
private void populateMenuItem()
{
DataTable menuData = GetMenuData();
AddTopMenuItems(menuData);
}
///Filter the data to get only the rows that have a
///null ParentID (This will come on the top-level menu items)
private void AddTopMenuItems(DataTable menuData)
{
DataView view = new DataView(menuData);
view.RowFilter = "DepartmentParentID IS NULL";
foreach (DataRowView row in view)
{
//MenuItem newMenuItem = new MenuItem(row["DepartmentName"].ToString(), row["DepartmentID"].ToString());
MenuItem newMenuItem = new MenuItem(row["DepartmentName"].ToString(), row["DepartmentID"].ToString());
Menu1.Items.Add(newMenuItem);
AddChildMenuItems(menuData, newMenuItem);
}
}
//This code is used to recursively add child menu items by filtering by ParentID
private void AddChildMenuItems(DataTable menuData, MenuItem parentMenuItem)
{
DataView view = new DataView(menuData);
view.RowFilter = "DepartmentParentID=" + parentMenuItem.Value;
foreach (DataRowView row in view)
{
MenuItem newMenuItem = new MenuItem(row["DepartmentName"].ToString(), row["DepartmentID"].ToString());
parentMenuItem.ChildItems.Add(newMenuItem);
AddChildMenuItems(menuData, newMenuItem);
}
}
private DataTable GetMenuData()
{
using (SqlConnection con = new SqlConnection(conStr))
{
using (SqlCommand cmd = new SqlCommand("SELECT DepartmentID,OfficeID,DepartmentName,DepartmentParentID,IsActive,CreatedByID,CreatedDate,LastModifiedByID,LastModifiedDt FROM DepartmentMst", con))
{
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
return dt;
}
}
}
Das Problem ist in AddTopMenuItems () - Methode, wo es zeigt "Objektverweis nicht auf die Instanz eines Objekts" in Zeile Menu1.Elemente.Add(newMenuItem);
Weiß nicht, Warum?
Hier ist-Daten in SQLSERVER2008 DepartmentMst:
DepartmentID DepartmentName IsActive DepartmentParentID
1 HR 1 NULL
2 IT 1 NULL
3 Operations 1 NULL
4 Desktop Engineer 1 2
5 Network Engineer 1 2
6 Employee Salary 1 1
Wenn die DepartmentParentID NULL ist, dann ist es das Hauptmenü und wenn nicht null, dann ist es die Kind-Knoten mit berücksichtigt werden, um seine Übergeordnete ID.
Beispiel hier http://chandradev819.wordpress.com/2011/07/03/how-to-bind-asp-net-menu-control-with-database/
Hilfe Dankbar!
InformationsquelleAutor SHEKHAR SHETE | 2012-11-12
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich vermute, dass Sie platziert haben, die Menü-Steuerung innen den content place holder von der master-Seite:
Einen ContentPlaceHolder-Steuerelement wird verwendet, um zu definieren, einer region, die von der Master-Seite, die substituiert werden können mit content aus anderen Seite mit der Masterseite verknüpft(Anzeige von untergeordneten Seiten).
Da das Menü wird mit einer gemeinsamen Kontrolle unter allen Seiten mit Vererbung aus Ihrer master-Seite, bewegen Sie einfach den Menü überall außerhalb die Inhalte Platzhalter und werden Sie gut zu gehen:
Plz mir sagen, wie man den Ausgewählten Menüpunkt im Content-Seite Master-Seite. ZB: wenn Abteilung "DesktopEngineer" dann brauche ich den entsprechenden Wert, ich habe in der Datenbank gespeichert?
Haben Sie einen Blick auf diese post - stackoverflow.com/questions/2770042/...
Ich bin nicht mit der site-map bin ich hier füllen die Menüs von SQLServer-Tabelle....so wie Sie den Wert der Aktuellen MenuItem-Ausgewählte Wert?
Ok, das ist ein völlig anderes Thema, das auf die ursprüngliche Frage.Ich würde vorschlagen, die Veröffentlichung einer neuen Frage, und ich bin sicher, dass jemand in der community wäre mehr als glücklich, Sie zu unterstützen
InformationsquelleAutor Denys Wessels
InformationsquelleAutor JIYAUL MUSTAPHA