Pregunta

Tengo un sitio web donde el usuario requiere para agregar y quitar Titulares de la página principal. Los encabezados se almacenan en una base de datos con una columna titulada 'Display' (verdaderas o falsas) que decide si aparecen los titulares. Quiero que el usuario tenga la posibilidad de añadir o eliminar los títulos de la página principal, por lo que he creado otra página que crea una tabla de todos los titulares, junto con una lista desplegable que contiene 'Enable' y 'desactivar' hacia abajo. Quiero estas listas desplegables para trabajar por cuando el usuario cambia el valor en la lista desplegable se actualizará la base de datos. Sólo no puedo encontrar la manera de dar las listas desplegables en un evento de cambio.

¿Alguna idea? ¿Me voy de este por el camino correcto o hay una mejor manera de hacer esto?

¿Fue útil?

Solución

En primer lugar, para hacer su solicitud real Se podría establecer los menús desplegables para AutoPostBack, y agregar un controlador para obtener el valor y actualizar los datos, es decir (aunque al mínimo sus menús desplegables estarían en un repetidor, o cuadrícula de datos)

    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

Una forma más fácil, si está accediendo directamente SQL es utilizar una cuadrícula de datos y databind a su consulta SQL.

Otros consejos

En primer lugar; personalmente me gustaría utilizar casillas de verificación para proporcionar una interfaz de usuario para un valor de verdadero / falso. Puede manejar esto de dos maneras: o bien utiliza controles ASP.NET (). Plano o HTML controles (< "casilla de verificación" de entrada type = ... />)

En el caso de utilizar los controles ASP.NET, sólo tiene que hacer doble clic en el control (en la vista de diseño) con el fin de tener un controlador de eventos para el evento CheckedChanged que ser creado para usted. En el caso de utilizar un elemento de entrada HTML, tendrá que controlar el evento onclick en el lado del cliente usando JavaScript y tener el JavaScript hacer una llamada AJAX o similar, de modo que el servidor puede actualizar la base de datos. Yo diría que el enfoque ASP.NET es más simple.

Lo más probable es que el método más fácil para esto es simplemente usar una cuadrícula de datos, a continuación, puede manejar fácilmente el evento.

Como una alternativa, ya que simplemente está haciendo un "show" o la opción "Ocultar", sólo podía utilizar los botones, lo que podría proporcionar una mejor interfaz de usuario. (Me parece cierto debido al desplazamiento accidental de los elementos de la lista desplegable con un ratón con rueda de desplazamiento en algunos navegadores)

En el código en el que crear sus menús desplegables, añadir lo siguiente:

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

Dim oDropDown as New DropDown

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

AddHandler oDropDown.SelectedIndexChanged, _ 
AddressOf oDropDown_SelectedIndexChanged

Normalmente, se añade un menú desplegable para su proyecto desde la caja de herramientas, y se puede utilizar el menú desplegable bajo CodeView para seleccionar el evento SelectedIndexChanged. Tenemos que hacerlo de forma manual, en este caso, por lo que cree su subrutina:

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

Espero que ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top