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

[SOLUCIONADO] Como cargar registros a otro formulario de otra página

Estas en el tema de Como cargar registros a otro formulario de otra página en el foro de ASPX (.net) en Foros del Web. Hola buenas explico mi problema, tengo en una página un gridview que se llena mediante un datasource que contiene un procedimiento almacenado con los datos ...
  #1 (permalink)  
Antiguo 05/01/2016, 16:01
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Como cargar registros a otro formulario de otra página

Hola buenas explico mi problema, tengo en una página un gridview que se llena mediante un datasource que contiene un procedimiento almacenado con los datos que deseo que muestre.
Lo que hice fue crear otro procedimiento almacenado llamado CargarRegistro donde se coloca el id y dependiendo del id el devuelve ciertos valores. Entonces lo que deseo es que cuando seleccione una fila del gridview y presione el botón modificar este compare el id que captura de la fila con el id de la tabla sql para que extraiga los datos y me los muestre en otro formulario que tengo en otra página. Si me pueden ayudar porfavor, he investigado en varios lugares y no encuentro como hacer lo que deseo, aclaro que soy algo nueva en esto de asp.net.

Ayuda please
  #2 (permalink)  
Antiguo 06/01/2016, 02:00
 
Fecha de Ingreso: noviembre-2002
Ubicación: DF
Mensajes: 1.056
Antigüedad: 21 años, 5 meses
Puntos: 37
Respuesta: Como cargar registros a otro formulario de otra página

En el evento de la pagina donde se despliega el grid y ocurre el click, puedes recupera la info del grid y guardarla en session, luego redireccionar hacia tu pagina2.aspx y recuperar desde alli las variables de session.

La otra opcion es recuperar los valores y enviarlos por "QUERYSTRING" como parte de la cadena del redirect y luego recuperarlas desde pagina2.asp con request("campo")

En el ejemplo siguiente, el campo a recuperar es parte de los "datakey" del gridview.

Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As GridViewEditEventArgs)
'-----------------
' Al click Datagrid- EDITAR, pasa x page load y luego redirecciona aqui para detalle
'-----------------
Dim pk As Integer = GridView1.DataKeys(e.NewEditIndex).Values("CAMPO")
Try
Response.Redirect("pagina2.aspx?pk=" & pk & "&accion=EDITAR")
Catch ex As Exception

End Try

End Sub
  #3 (permalink)  
Antiguo 06/01/2016, 11:02
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Como cargar registros a otro formulario de otra página

Muchas gracias voy a probar
  #4 (permalink)  
Antiguo 11/01/2016, 17:33
 
Fecha de Ingreso: enero-2016
Mensajes: 7
Antigüedad: 8 años, 3 meses
Puntos: 0
Respuesta: Como cargar registros a otro formulario de otra página

Hola les compartire la solución que encontre por si alguien busca lo mismo.

Antes que todo abran el diseñador, deben dar clic en una flechita en la esquina superior derecha del gridview y les desplegara varias opciones tienen que marcar la opción "Show select check box" para que les aparezca a la par de cada fila de su gridview y puedan seleccionar.

*****Primero el código que va en el botón modificar (Cree un botón modificar para actualizar los campos del grid, ustedes pueden solo extraerlos igual es el mismo procedimiento):

Public Sub ASPxButton2_Click(sender As Object, e As EventArgs) Handles ASPxButton2.Click
conexion.ConnectionString = "Aqui colocan su conexión a la base de datos"
comando.Connection = conexion


' Declaramos un SqlCommand a partir del nombre del procedimiento y la conexión que hemos creado.
Dim command As New SqlClient.SqlCommand("Nombre del procedimiento almacenado", conexion)

' Indicamos que vamos a ejecutar un procedimiento almacenado
command.CommandType = CommandType.StoredProcedure

' Rellenamos los parámetros de entrada del procedimiento.
Dim id As Integer
Dim arreglo As Array 'Se declara un arreglo para que devuelva una fila completa
'Devuelve el número de fila que se ha seleccionado
arreglo = ASPxGridView1.GetDataRow(ASPxGridView1.FocusedRowI ndex).ItemArray
'Recoge el valor de la columna 0
id = arreglo(0).ToString
' Añadimos los parámetros al SqlCommand
command.Parameters.Add(New SqlClient.SqlParameter("@id", id)) 'Compara el id de la columna seleccionada con el id que esta en BD

' Declaramos un DataAdapter a partir del SqlCommand y un DataSet para almacenar los datos.
Dim da As New SqlClient.SqlDataAdapter(command)
Dim ds As New DataSet


' Por último, rellenamos el DataSet
da.Fill(ds)
conexion.Open()
command.ExecuteNonQuery()

'Guarda los datos del dataset en una sesión
Session("datos") = ds
'Guarda solo el id para realizar comparaciones en otras operaciones
Session("id") = id
Response.Redirect("~/Nombre de la pagina donde quieren redirreccionarse")
conexion.Close()
End Sub


*******Ahora el código del formulario de destino:

Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then

'Se declara una variable tipo dataset
Dim ds As DataSet
ds = Session("datos")
'Se le asigna el valor de la sesión a la variable dataset
'Se llenan los controles textbox, dropdownlist con los datos extraidos del dataset
ASPxFormLayout1_E1.Text = CDate(ds.Tables.Item(0).Rows(0).Item("FECHA")).ToS tring("dd/MM/yyyy") 'Se coloca esta instrucción para que solo muestre la fecha sin la hora
DropDownList1.Text = ds.Tables.Item(0).Rows(0).Item("TIPO")
ASPxFormLayout1_E3.Text = ds.Tables.Item(0).Rows(0).Item("EST")
ASPxFormLayout1_E5.Text = ds.Tables.Item(0).Rows(0).Item("OBSERVACIONES")
ASPxFormLayout1_E6.Text = CDate(ds.Tables.Item(0).Rows(0).Item("MODIFICACION ")).ToString("dd/MM/yyyy")
ASPxFormLayout1_E7.Text = ds.Tables.Item(0).Rows(0).Item("USUARIO")
End If
End Sub


Bueno a mi esto me ha funcionado, recuerden que tienen que tener un procedimiento almacenado con la selección de los campos que desean trasladar y con un where que compare el parámetro id con el ID de la tabla, si tienen alguna duda podria ayudarles.

Última edición por ale_mary17; 11/01/2016 a las 17:40

Etiquetas: asp, formulario, página, registros, sql
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 23:47.