Frage

Ich habe eine Website, wo die Benutzer Nachrichten hinzufügen und entfernen aus der Haupt-Seite benötigt. Die Schlagzeilen werden in einer Datenbank mit einer Spalte mit dem Titel ‚Display‘ (wahr oder falsch) gespeichert, das entscheidet, ob die Schlagzeilen erscheinen. Ich möchte, dass die Benutzer die Möglichkeit haben, um Schlagzeilen von der Hauptseite hinzuzufügen oder zu entfernen, so haben andere Seite erstellt, die zusammen mit einem Drop-Down-Liste mit ‚Aktivieren‘ und ‚Deaktivieren‘ eine Tabelle aller Schlagzeilen schafft. Ich mag diese Dropdown-Listen von arbeiten, wenn der Benutzer ändert den Wert in dem Dropdown-Liste wird die Datenbank aktualisiert werden. Ich kann nur feststellen, wie die Drop-Down-Listen eines auf Änderungsereignis geben.

Irgendwelche Ideen? Werde ich diese über den richtigen Weg oder gibt es einen besseren Weg, dies zu tun?

War es hilfreich?

Lösung

Zuerst Ihre tatsächliche Anfrage zu tun Sie würden die Dropdown-Listen auf Autopostback, und einen Handler hinzufügen, um den Wert zu erhalten, und aktualisieren Sie die Daten, IE (obwohl mindestens Ihre Dropdown-Listen in einem Repeater sein würden, oder Datagrid)

    Private Sub SetupDropdowns()
        Dim pDropDown As New DropDownList
        pDropDown.Items.Add("Yes")
        pDropDown.Items.Add("No")
        pDropDown.AutoPostBack = True
        AddHandler pDropDown.SelectedIndexChanged, AddressOf pDropDown_SelectedIndexChanged
    End Sub

    Private Sub pDropDown_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim value As String = CType(sender, DropDownList).SelectedValue
'Do something with value
    End Sub

Ein einfacher Weg, wenn Sie SQL direkt zugreifen ist ein Datagrid zu verwenden und databind es um Ihre SQL-Abfrage.

Andere Tipps

Erste; ich persönlich würde Kontrollkästchen für die Bereitstellung einer Benutzeroberfläche für einen Wahr / Falsch-Wert verwenden. Sie können dies auf zwei Arten umgehen: Entweder Sie ASP.NET-Steuerelemente verwenden (). Oder einfache HTML-Steuerelemente ()

Im Fall des ASP.NET-Steuerelemente verwenden, können Sie einfach doppelt auf dem Steuerelement klicken (in der Entwurfsansicht), um einen Ereignishandler für das Ereignis CheckedChanged zu haben für Sie erstellt werden. Im Fall eines HTML-Eingabeelement verwenden, müssen Sie das Onclick-Ereignis auf der Client-Seite mit JavaScript zu handhaben, und haben die JavaScript einen AJAX-Aufruf oder ähnlich zu machen, so dass der Server die Datenbank aktualisieren. Ich würde sagen, dass der ASP.NET-Ansatz ist einfacher.

Die meisten wahrscheinlich, dass Sie einfachste Methode hierfür ist einfach ein Datagrid zu verwenden, können Sie dann die Ereignisbehandlung leicht.

Als Alternative, da Sie lediglich eine „Show“ tun oder „Hide“ -Option, könnten Sie einfach Tasten verwenden, die eine bessere Benutzeroberfläche bereitstellen könnte. (Ich finde das wahre wegen der versehentlichen Scrollen der Dropdown-Liste Elemente mit einem Scroll-Rad der Maus in einigen Browsern)

In dem Code, wo Sie Ihre Dropdown-Listen erstellen, fügen Sie diese:

''// You already have this code...

Dim oDropDown as New DropDown

''// Whatever other declarations you need...

AddHandler oDropDown.SelectedIndexChanged, _ 
AddressOf oDropDown_SelectedIndexChanged

Normalerweise Sie ein Dropdown zu einem Projekt aus der Toolbox hinzufügen, und Sie können das Dropdown-Menü unter der Codeansicht verwenden, um das SelectedIndexChanged-Ereignis auszuwählen. Wir haben dies in diesem Fall manuell zu tun, so erstellen Sie Ihr Unterprogramm:

Public Sub oDropDown_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
    ''// Do whatever you need to do here

    ''// I sometimes do this to make code manipulation easier:
    Dim _sender as DropDown = CType(sender, DropDown)

End Sub

Ich hoffe, das hilft!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top