Domanda

Ho un sito web in cui l'utente richiede di aggiungere e rimuovere Notizie dalla pagina principale. I titoli vengono memorizzati in un database con una colonna dal titolo 'Display' (vero o falso) che decide se compaiono i titoli dei giornali. Voglio che l'utente ha la possibilità di aggiungere o rimuovere i titoli dalla pagina principale, così ho creato un'altra pagina che crea una tabella di tutti i titoli insieme a un elenco a discesa contenente 'Enable' e 'disabilita' verso il basso. Voglio che questi elenchi a discesa per lavorare da quando l'utente cambia il valore nel menu a tendina verrà aggiornato il database. Solo io posso trovare come dare gli elenchi a discesa un On evento di modifica.

Tutte le idee? Sto andando su questo nel modo giusto o c'è un modo migliore per fare questo?

È stato utile?

Soluzione

In primo luogo, per fare la tua richiesta effettiva Si potrebbe impostare menu di scorrimento per AutoPostBack, e aggiungere un gestore per ottenere il valore e aggiornare i dati, IE (anche se al minimo i vostri menù a discesa sarebbe in un ripetitore, o 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

Un modo più semplice, se si accede direttamente SQL è quello di utilizzare un datagrid e DataBind alla vostra query SQL.

Altri suggerimenti

Per prima cosa; Personalmente vorrei utilizzare le caselle di controllo per fornire un'interfaccia utente per un valore true / false. È possibile gestire questo in due modi: o si utilizzano i controlli ASP.NET (). O semplice HTML controlli ()

Nel caso di utilizzare i controlli ASP.NET, si può semplicemente fare doppio clic sul comando (nella vista di disegno) al fine di avere un gestore di eventi per l'evento CheckedChanged da creare per voi. Nel caso di utilizzo di un elemento di input HTML, è necessario gestire l'evento onclick sul lato client utilizzando JavaScript, e hanno il JavaScript effettuare una chiamata AJAX o simile in modo che il server possa aggiornare il database. Direi che l'approccio ASP.NET è più semplice.

Molto probabilmente il metodo più semplice per questo è di usare semplicemente un DataGrid, è possibile gestire l'evento con facilità.

In alternativa, dal momento che si sta semplicemente facendo uno "show" o l'opzione "Nascondi", si potrebbe utilizzare i pulsanti, che potrebbe fornire una migliore interfaccia utente. (Trovo questa vera causa di scorrimento accidentale di discesa voci di elenco con un mouse rotella di scorrimento in alcuni browser)

Nel codice in cui si creano i menù a discesa, aggiungere questo:

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

Dim oDropDown as New DropDown

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

AddHandler oDropDown.SelectedIndexChanged, _ 
AddressOf oDropDown_SelectedIndexChanged

In genere, si aggiunge un menu a discesa al progetto dalla casella degli strumenti, ed è possibile utilizzare il menu a discesa sotto CodeView per selezionare l'evento SelectedIndexChanged. Dobbiamo farlo manualmente in questo caso, in modo da creare la subroutine:

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

Speranza che aiuta!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top