Foros del Web » Programando para Internet » ASPX (.net) »

Problemas con un DropDownList

Estas en el tema de Problemas con un DropDownList en el foro de ASPX (.net) en Foros del Web. Hola a todos: Tengo un DropDownList al que he cargado con unos valores. El asunto es que cuando selecciono uno de ellos y hace la ...
  #1 (permalink)  
Antiguo 31/07/2007, 01:53
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Problemas con un DropDownList

Hola a todos:

Tengo un DropDownList al que he cargado con unos valores. El asunto es que cuando selecciono uno de ellos y hace la recarga(tengo el autopostback a true), pierdo el valor seleccionado y me aparece otra vez el primero de la lista en vez del seleccionado. Necesito hacer la recarga para poder lanzar el evento SelectedIndexChanged. ¿Cual es el problema?¿Que se me escapa?

Gracias.
  #2 (permalink)  
Antiguo 31/07/2007, 06:13
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Re: Problemas con un DropDownList

Seguro que estas volviendo a cargar el combo en el Load.

Tendrias que hacer esto:
if(!this.isPostBack())
{
cargarcombo.
}
__________________
Charlie.
  #3 (permalink)  
Antiguo 31/07/2007, 06:20
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Re: Problemas con un DropDownList

Creo que el problema no viene de ahi:


Os paso el codigo a ver que os parece:

Código:
Imports System.Web.UI
Imports System.Collections.Generic
Imports System.Reflection
Imports System.Data


Class _Default
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

        If Not IsPostBack Then

            TipoUsuarioddl.Items.Insert(0, New ListItem("-tipo usuario-", ""))
            TipoUsuarioddl.Items.Insert(1, New ListItem("Escuela Idioma", ""))
            TipoUsuarioddl.Items.Insert(2, New ListItem("Alojamiento", ""))
            TipoUsuarioddl.Items.Insert(3, New ListItem("Demandante", ""))
            TipoUsuarioddl.Items.Insert(4, New ListItem("Alumno", ""))

        End If
    End Sub

    Public Sub TipoUsuarioddl_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TipoUsuarioddl.SelectedIndexChanged
        Select Case TipoUsuarioddl.SelectedIndex
            Case 0
                Dim dt As DataTable = New DataTable()

                dt.Columns.Add(New DataColumn("Text", GetType(String)))
                dt.Columns.Add(New DataColumn("Value", GetType(String)))

                dt.Rows.Add(CreateRow("-tipo-", "0", dt))

                Tipoddl.DataSource = dt
                Tipoddl.DataBind()
                Tipoddl.Enabled = False
            Case 1
                Tipoddl.Enabled = True
                Dim dt As DataTable = New DataTable()

                dt.Columns.Add(New DataColumn("Text", GetType(String)))
                dt.Columns.Add(New DataColumn("Value", GetType(String)))

                dt.Rows.Add(CreateRow("-tipo-", "0", dt))
                dt.Rows.Add(CreateRow("Universidad", "1", dt))
                dt.Rows.Add(CreateRow("Academia", "2", dt))

                Tipoddl.DataSource = dt
                Tipoddl.DataBind()
            Case 2
                Tipoddl.Enabled = True
                Dim dt As DataTable = New DataTable()

                dt.Columns.Add(New DataColumn("Text", GetType(String)))
                dt.Columns.Add(New DataColumn("Value", GetType(String)))

                dt.Rows.Add(CreateRow("-tipo-", "0", dt))
                dt.Rows.Add(CreateRow("Apartamentos / Piso compartido", "1", dt))
                dt.Rows.Add(CreateRow("Residencias", "2", dt))
                dt.Rows.Add(CreateRow("Familia", "3", dt))
                dt.Rows.Add(CreateRow("Hotel", "4", dt))

                Tipoddl.DataSource = dt
                Tipoddl.DataBind()
            Case 3
                Dim dt As DataTable = New DataTable()

                dt.Columns.Add(New DataColumn("Text", GetType(String)))
                dt.Columns.Add(New DataColumn("Value", GetType(String)))

                dt.Rows.Add(CreateRow("-tipo-", "0", dt))

                Tipoddl.DataSource = dt
                Tipoddl.DataBind()
                Tipoddl.Enabled = False
            Case 4
                Dim dt As DataTable = New DataTable()

                dt.Columns.Add(New DataColumn("Text", GetType(String)))
                dt.Columns.Add(New DataColumn("Value", GetType(String)))

                dt.Rows.Add(CreateRow("-tipo-", "0", dt))

                Tipoddl.DataSource = dt
                Tipoddl.DataBind()
                Tipoddl.Enabled = False

        End Select


    End Sub
    Function CreateRow(ByVal Text As String, ByVal Value As String, ByVal dt As DataTable) As DataRow
        Dim dr As DataRow = dt.NewRow()

        dr(0) = Text
        dr(1) = Value

        Return dr
    End Function


End Class

Gracias
  #4 (permalink)  
Antiguo 31/07/2007, 07:56
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Re: Problemas con un DropDownList

Vi tu codigo y parece correcto. Te cuento mi experiencia y es que aunque no lo creas seguro debe estar pasando dos o mas veces por el pageload como si fuera la primera vez...

hace un debug en el pageload y fijate cuantas veces pasas por ahi... si pasa mas de una es que tenes alguna imagen "img" con el src vacio o apuntando a una imagen que no existe.
Esto es un error conocido pero que da dolores de cabeza.

Saludos y contanos como te fue.

Marcelo.
  #5 (permalink)  
Antiguo 31/07/2007, 09:51
 
Fecha de Ingreso: mayo-2007
Mensajes: 8
Antigüedad: 17 años
Puntos: 0
Re: Problemas con un DropDownList

Pasa mas de una vez, pero no tengo ninguna imagen en la pagina. Solo los dos DropDownList que aparecen en el codigo.

Saludos
  #6 (permalink)  
Antiguo 01/08/2007, 09:54
Avatar de mdavila  
Fecha de Ingreso: julio-2007
Ubicación: Montevideo (Uruguay)
Mensajes: 919
Antigüedad: 16 años, 9 meses
Puntos: 13
Re: Problemas con un DropDownList

Ok, fijate si en el codigo html tenes el AutoEventWireup="false"

<%@ Page Language="vb" AutoEventWireup="false" Inherits="tuproyecto.tupagina" CodeFile="tupagina.aspx.vb" %>

Contame luego a ver si pudiste
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 01:59.