¿Cómo llenar un DropDownList desde una Base de datos?
El control DropDownList de servidor Web permite a los usuarios seleccionar uno o varios elementos de una lista predefinida. La lista de elementos permanece oculta hasta que los usuarios hacen clic en el botón desplegable. Además, el control DropDownList no admite el modo de selección múltiple.
Elementos de Lista
En realidad, el control DropDownList es un contenedor para los elementos de lista de tipo ListItem. Cada objeto ListItem constituye un objeto independiente con sus propiedades específicas. Estas propiedades son:
- Text: Especifica el texto que aparece en la lista.
- Value: Contiene el valor que está asociado con un elemento. Al establecer esta propiedad, puede asociar un valor a un elemento específico sin mostrarlo. Por ejemplo, puede establecer la propiedad Text en el nombre de un estado de EE.UU. y la propiedad Value, en su abreviatura postal.
- Selected: Indica si el elemento se ha seleccionado mediante un valor booleano.
Enlazar datos al control
Podemos enlazaar un control DropDowList de servidor web hacia un origen de datos. Cada elemento del control corresponde a un elemento que habitualmente es una fila, del origen de datos.
Para llenarlo hacemos lo siguiente:
Private Sub Llenar_Lista() ' CREAMOS NUESTRO ELEMENTO CONNCTION PARA TENER ACCESO A LA BASE DE DATOS Dim dbCon As New System.Data.OleDb.OleDbConnection("CADENA DE CONEXION HACIA SQL SERVER") Try 'ABRIMOS LA CONEXION HACIA SQL If dbCon.State = ConnectionState.Closed Then dbCon.Open() End If Dim SQL As String = String.Empty SQL = "Select codigo,descripcion From Producto" 'RECUPERAMOS LOS DATOS DESDE SQL Dim da As New System.Data.OleDb.OleDbDataAdapter(SQL, dbCon) 'CREAMOS UN DATATABLE Dim dt As New DataTable("NOMBRE_DEL_DATATABLE") 'LLENAMOS EL DATATABLE da.Fill(dt) Me.ddlLista.DataSource = dt Me.ddlLista.DataValueField = "codigo" 'Valor Oculto Me.ddlLista.DataTextField = "descripcion" 'Valor a Mostrar Me.ddlLista.DataBind() Me.ddlLista.Items.Insert(0, New ListItem("Seleccione...", String.Empty)) 'LIMPIAMOS LA MEMORIA DEL SERVIDOR dt.Dispose() Catch ex As Exception 'CAPTRAR MENSAJE DE ERROR Finally If dbCon.State = ConnectionState.Open Then dbCon.Close() End If End Try End Sub |
Evento del control DropDownList
El control DropDownList desencadena un evento SelectedIndexChanged cuando los usuarios seleccionan un elemento. De forma predeterminada, este evento no envía la página al servidor, aunque es posible forzar el envío inmediato si se establece la propiedad AutoPostBack en true.
me dice que ds no esta declarada
Hola Jesus, gracias por tu observación. Cambia por favor la siguiente parte
me.ddlLista.DataSource = dspor me.ddlLista.DataSource = dt