Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas a obtener un valor desde el DropDownList

Estas en el tema de Problemas a obtener un valor desde el DropDownList en el foro de .NET en Foros del Web. Hola a todos Hacker de esta web tengo una duda con respecto a trabajar con los DropDownList de aspx. Estoy utilizando la version 2008 de ...
  #1 (permalink)  
Antiguo 09/12/2009, 11:20
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Pregunta Problemas a obtener un valor desde el DropDownList

Hola a todos Hacker de esta web tengo una duda con respecto a trabajar con los DropDownList de aspx. Estoy utilizando la version 2008 de visual basic. Y como lo mencione anteriormente diseño la presentación con aspx y logica de negocio con C#, este código que muestro a continuación es con el que "cargo" la información del DropDownList:

Código PHP:

String base_datos 
"Database = agencia ; Data Source = 127.0.0.1 ; User Id=root ; Password = root ";
conexion = new MySqlConnection(base_datos);
String sentencia "SELECT * FROM hotel WHERE lugar = '"des.destino +"' ";
MySqlCommand executar = new MySqlCommand(sentenciaconexion);
            
conexion.Open();
            
this.DropDownList1.DataSource executar.ExecuteReader();
            
this.DropDownList1.DataTextField "nombre_hotel";
            
this.DropDownList1.DataValueField "id_hotel";
            
this.DropDownList1.DataBind(); 
y luego lo intente con este otro:

Código PHP:


string baseDatos 
"Database = mixup ; Data Source = 127.0.0.1 ; User Id = root ; Password = root";
     
String sentencia "SELECT * FROM mixup ORDER BY nombreMixUp";
     
MySqlConnection conexion = new MySqlConnection(baseDatos);
     
conexion.Open();
      
MySqlDataAdapter da = new MySqlDataAdapter(sentenciaconexion);
        
//conexion.Open();
       
System.Data.DataSet ds = new System.Data.DataSet();
       
da.Fill(ds"mixup");
            
this.DropDownList1.DataSource ds.Tables[0];
            
this.DropDownList1.DataTextField ds.Tables[0].Columns[1].Caption;
            
this.DropDownList1.DataValueField ds.Tables[0].Columns[0].Caption;
            
this.DropDownList1.DataBind();
       
conexion.Close(); 

El problema no esta en cuanto a "cargar" o "llenar" el contenido de los DropDownList, sino a la hora de seleccionar un valor que muestra el DropDownList ya que no importa cual seleccione simpre me muestra (o selecciona) el primer elemento que se encuentre en la tabla de mi B.D.

Con esta sentencia capturo el valor que deseo del DropDownList:


int idTienda = int.Parse(this.DropDownList1.SelectedValue.ToStrin g());


Como pueden observar parseo o convierto el valor de VALUE que contiene el DropDownList ya que es el valor con el que deseo trabajar. Pero como lo mencione, no importa cual seleccione, siempre se selecciona el primer registro que se encuentre en mi tabla de la B.D. y no se porque sucede esto, si alguien me pudiera decir cual es el problema o recomendar alguna solucion se los agradecere mucho...

P.D: el gestor de base de datos que utilizo es MySQL
  #2 (permalink)  
Antiguo 09/12/2009, 11:54
Avatar de eperedo  
Fecha de Ingreso: septiembre-2009
Ubicación: Perú
Mensajes: 654
Antigüedad: 14 años, 7 meses
Puntos: 16
Respuesta: Problemas a obtener un valor desde el DropDownList

Supongo que "llenas" el dropdownlist en el load verdad?
De ser así debes de agregar lo sgte a tu código:
Código vb.net:
Ver original
  1. If Not Page.IsPostBack Then
  2.  'Yo uso este código para llenar el dropdownlist, reemplázalo por el tuyo
  3.    Using cn As New SqlConnection("server=.;database=northwind;uid=sa;pwd=omg")
  4.                 Using cmd As New SqlCommand("Select ProductId, ProductName From products", cn)
  5.                     Using da As New SqlDataAdapter(cmd)
  6.                         Dim dt As New DataTable()
  7.                         da.Fill(dt)
  8.                         Me.DropDownList1.DataSource = dt
  9.                         Me.DropDownList1.DataBind()
  10.                     End Using
  11.                 End Using
  12.             End Using
  13. End If

El código Not Page.IsPostBack comprueba si la página se está recargando por primera vez o por una petición del cliente (Como dar click a un botón por ejemplo).
Para obtener el valor seleccionado:
Código vb.net:
Ver original
  1. int idTienda = int.Parse(this.DropDownList1.SelectedValue);

Saludos.
__________________
Eduardo Peredo
Wigoin
  #3 (permalink)  
Antiguo 09/12/2009, 13:07
Avatar de optimus100  
Fecha de Ingreso: febrero-2009
Mensajes: 45
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Problemas a obtener un valor desde el DropDownList

eperedo muchas gracias por tu consejo, ya lo he probado y funciona muy bien. Tal parece que me faltaba, era evitar que se recargara la pagina y con lo de Not Page.IsPostBack se soluciona. Y si precisamente necesitaba que se cargara en DropDownList en el Load
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:53.