none
AYUDA pasar parametro de un DropDownList a otro Drop en distina pagina RRS feed

  • Pregunta

  • Como se ve en la siguiente imagen necesito pasar el valor de el dropdown list que se muestra , donde mediante una consulta se llena al dropdownlist de la imagen de abajo podrian decirme como , gracias

    jueves, 29 de octubre de 2015 15:56

Respuestas

  • hola

    una cosa es que seleccione y otra que cargue los items

    - cargas los items usando el metodo llenarGrid() esto lo usas en las dos paginas

    - seleccionas el item asignando el SelectedValue con el valor que asignaste en la Session

    >>el Drop de la segunda no quiero que venga de la Base de datos , quiero que se llene con el primer drop

    partamos de la base que no me parece correcto

    pero si quisiseras hacerlo entonces el datatable que se cargo con la ejecucion del llenarGrid() deberias asignarlo a la Session y en la segunda pagina asignar el DataSource del combo con ese datatable

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 29 de octubre de 2015 18:02

Todas las respuestas

  • hola

    como navegas de una pagina a la otra ? usas un Response.Redirect()

    si es asi podrias enviar el dato del combo en la url y usar el Request.QueryString() para recuperarlo en la otra pagina

    o podrias usar el objeto Session, asignas el valor en la session y desde la otra pagina lo recuperas para asignarlo en el combo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 29 de octubre de 2015 16:19
  • Sludos Leandro, lo hago de la siguiente manera :

    En la pagina que envia los parametros tengo lo siguiente:

    Protected Sub btnVacante_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnVacante.Click
            llenarGrid()
            Session("drop1") = DropDownListVacantes.SelectedItem.Text
            Session("drop2") = DropDownListVacantes.SelectedValue
            Response.Redirect("curriculum.aspx")
        End Sub
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                llenarGrid()
            End If
        End Sub
        Sub llenarGrid()
            Try
                Dim queryString As String = "SELECT id_vacante, nom_vacante FROM vacante WHERE estado_vacante='ACTIVO'"
                Using connection As New SqlConnection(connectionString)
                    Dim command As New SqlCommand(queryString, connection)
                    adaptador = New SqlDataAdapter(command)
                    Dim datos As New DataTable
                    adaptador.Fill(datos)
    
                    DropDownListVacantes.DataSource = datos
                    DropDownListVacantes.DataTextField = "nom_vacante"
                    DropDownListVacantes.DataValueField = "id_vacante"
                    DropDownListVacantes.DataBind()
                End Using
            Catch ex As Exception
                Response.Write("<script>alert('La conexion no pudo realizarse en CEDA 517')</script>")
            End Try
        End Sub

    Y en la pagina que recibe tengo lo siguiente:

    DropDownList1.DataTextField = Session("drop1")
                DropDownList1.DataValueField = Session("drop2")
    Eso lo tengo dentro del Page_Load de la pagina

    jueves, 29 de octubre de 2015 16:25
  • Me podrian decir en donde estoy mal
    jueves, 29 de octubre de 2015 16:54
  • hola

    pero en la segunda pagina deberias primero cargar el grid y depsues usar

    DropDownList1.SelectedValue = Session("drop2").ToString()

    o sea imagine que querias selecccionar el item

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 29 de octubre de 2015 16:55
  • Y como paso el metodo a la segunda pagina ?
    jueves, 29 de octubre de 2015 16:59
  • Solo quiero llenar el drop de la segunda pagina, con los datos del drop proveniente de la primera
    jueves, 29 de octubre de 2015 17:19
  • Leandro logre pasar los parametros a dos cajas de texto que me parece es lo mas sencillo , ahora hago lo siguiente 
    Sub llenarGrid()
            Try
                Dim queryString As String = "SELECT id_vacante, nom_vacante FROM vacante WHERE id_vacante=@param1 and nom_vacante=@param2"
                Using connection As New SqlConnection(connectionString)
                    Dim command As New SqlCommand(queryString, connection)
                    command.Parameters.AddWithValue("@param1", TextBox1.Text)
                    command.Parameters.AddWithValue("@param2", TextBox2.Text)
                    adaptador = New SqlDataAdapter(command)
                    Dim datos As New DataTable
                    adaptador.Fill(datos)
    
                    DropDownList1.DataSource = datos
                    DropDownList1.DataTextField = "nom_vacante"
                    DropDownList1.DataValueField = "id_vacante"
                    DropDownList1.DataBind()
                End Using
            Catch ex As Exception
                Response.Write(String.Format("<script>alert('{0}')</script>", ex.Message))
            End Try
        End Sub
    pero aun no me muestra nada
    jueves, 29 de octubre de 2015 17:38
  • >>quiero llenar el drop de la segunda pagina, con los datos del drop proveniente de la primera

    porque en la segunda pagina no invocas la funcionalidad que ejecuta la query a la db

    o sea podrias llevar el codigo a una clase y compartir la funcionalidad entre las paginas

    Public Class DbHelper	
    		
    	Public Shared Function llenarGrid() As DataTable
    		
    			Dim queryString As String = "SELECT id_vacante, nom_vacante FROM vacante WHERE estado_vacante='ACTIVO'"
    			Using connection As New SqlConnection(connectionString)
    				Dim command As New SqlCommand(queryString, connection)
    				adaptador = New SqlDataAdapter(command)
    				Dim datos As New DataTable
    				adaptador.Fill(datos)
    
    				Return datos
    
    			End Using
    
    	End Sub
    
    End Class

    y lo usas

    Try
    	DropDownListVacantes.DataSource = DbHelper.llenarGrid()
    	DropDownListVacantes.DataTextField = "nom_vacante"
    	DropDownListVacantes.DataValueField = "id_vacante"
    	DropDownListVacantes.DataBind()
    
    Catch ex As Exception
    	Response.Write("<script>alert('La conexion no pudo realizarse en CEDA 517')</script>")
    End Try

    de la misma forma lo usarias en la segunda pagina

    asi no pasas nada entre las paginas sino que compartes codigo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    jueves, 29 de octubre de 2015 17:40
  • Porque quiero que me muestre especificamente la que se seleccione en la primera pagina, osea el Drop de la segunda no quiero que venga de la Base de datos , quiero que se llene con el primer drop
    • Editado Gspindola jueves, 29 de octubre de 2015 17:56
    jueves, 29 de octubre de 2015 17:55
  • hola

    una cosa es que seleccione y otra que cargue los items

    - cargas los items usando el metodo llenarGrid() esto lo usas en las dos paginas

    - seleccionas el item asignando el SelectedValue con el valor que asignaste en la Session

    >>el Drop de la segunda no quiero que venga de la Base de datos , quiero que se llene con el primer drop

    partamos de la base que no me parece correcto

    pero si quisiseras hacerlo entonces el datatable que se cargo con la ejecucion del llenarGrid() deberias asignarlo a la Session y en la segunda pagina asignar el DataSource del combo con ese datatable

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 29 de octubre de 2015 18:02