Menu Dynamisch aus Datenbank

  • VB.NET

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von ThunderFrog.

    Menu Dynamisch aus Datenbank

    Hallo,
    ich habe da mal ein paar Fragen :D

    Ist es möglich Menu´s zur Laufzeit zu erstellen ?

    Folgende "fiktive" Situation:

    Ich möchte eine Remote Anwendung für mehrere Kunden programmieren, die mit dieser Anwendung ihre Website verwalten können.
    Jetzt hat aber jeder Kunde verschiedene "Componenten/Plugins" die dann auch Verschiedene Menüs haben.

    Man könnte natürlich die Anwendung alle Möglichkeiten an Menüs mitliefern und dann einfach abfragen welcher Kunde es ist oder für jeden Kunden eine neue Anwendung.
    Eine zentrale Anwendung mit Plugins .dll wäre da glaube ich viel einfacher.

    Mein Ansatz zur Lösung:

    Die Anwendung öffnet beim Starten eine mySQL Verbindung zu meiner zentralen Datenbank wo Kundennamen (+ weitere Infos zum Kunden) und die Componenten abgerufen werden.

    bsp. Aufbau der Componenten Datenbank:
    • componenten_id
    • componenten_name ( Name der Componente + Name des Menü )
    • componenten_func ( welche Funktion der Menüpunkt ausführen soll )
    • componenten_activ ( ist die Componente Aktiv ? )

    Jetzt soll per mySQL Query ein Menü erzeugt werden + Ereignis was passieren soll wenn man drauf klickt.

    Lange rede, kurzer sinn: Ist es möglich ein Menu Dynamisch zu erzeugen ?

    Hoffe es war einigermaßen verständlich.

    Gruß
    Mal eine andere Signatur ;)
    Soetwas? Das laden aus der DB hab ich in diesem Bsp. natürlich nicht:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim name As String = "irgendwas" 'Lad den Text aus der Datenbank oder nimm ihn sonstwoher ;-)
    4. Dim func As String = "do anything" 'same
    5. Dim activ As Boolean = True 'same
    6. MenuStrip1.Items.Add(name, Nothing, Sub() MenuClicked(name, func, activ))
    7. End Sub
    8. Sub MenuClicked(ByVal name As String, ByVal func As String, ByVal activ As Boolean)
    9. ' Hier stehen dir, sobald das Item geklickt wurde,
    10. ' die Parameter "name" und "activ" zur Verfügung.
    11. MsgBox("Das Item """ & name & """ ist " & activ.ToString & "." & vbNewLine & "Die Funktion lautet: """ & func & """")
    12. End Sub
    13. End Class
    Einem MenuStrip wird ein Item hinzugefügt, bei anklicken wird MenuClicked(UndDieGanzenParameter) aufgerufen. Kannst du natürlich beliebig oft beim Starten, u.U. für jeden Eintrag 1x, durchführen.