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

Enviar datos a un evento?

Estas en el tema de Enviar datos a un evento? en el foro de ASPX (.net) en Foros del Web. Hola amigos nuevamente aqui necesitando de su ayuda, tengo un problema, eh tratado de buscar informacion pero no eh encontrado, quizas no lo estoy buscando ...
  #1 (permalink)  
Antiguo 16/04/2008, 16:21
 
Fecha de Ingreso: febrero-2003
Ubicación: chile
Mensajes: 101
Antigüedad: 21 años, 2 meses
Puntos: 1
Sonrisa Enviar datos a un evento?

Hola amigos nuevamente aqui necesitando de su ayuda, tengo un problema, eh tratado de buscar informacion pero no eh encontrado, quizas no lo estoy buscando de la forma correcta. Bueno les cuento de que se trata haber si me dicen por como lo tengo que buscar o que solucion puede tener.

Lo que estoy haciendo es genero una tabla en forma dinámica, ahora una de estas celdas tiene un boton, al cual le añado un evento:

Creo el boton. (la cantidad de filas depende de una consulta a la base de datos)

Código:
Dim boton As LinkButton = New LinkButton()
boton.Text = "Ver mas"
AddHandler boton.Click, AddressOf Boton1_Click
boton.ToolTip = "Detalle"
tc1d.Controls.Add(boton)
ahora el evento
Código:
Protected Sub Boton1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim sUrl As String = "DetalleAsignatura.aspx"
        Dim sScript As String = "<script language =javascript> "
        sScript += "window.open('" & sUrl & "',null,'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=170,left=50,top=50');"
        sScript += "</script> "
        Response.Write(sScript)
    End Sub

Bueno eso es lo que tengo funciona bien pero necesito enviarle un dato ((dt.Rows(i).Item("Cod_Plan")) a mi Ventana Emergente dependiendo de la fila de la tabla, ahora esa es mi duda como captura el dato dependiendo de la fila para pasarselo al evento o abra alguna otra forma de hacerlo y yo me estoy complicando la vida.

De ante mano muchas gracias!!!!
__________________
s[K]eL
  #2 (permalink)  
Antiguo 17/04/2008, 01:43
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Enviar datos a un evento?

Lo que puedes hacer es añadirle un argumento al botón y luego lo capturas en el evento:

Código:
boton.CommandArgument = valor 
luego en el evento:
Código:
Dim valor As String = e.CommandArgument 'valor = valor 
De todas formas por lo que puedo ver, quieres abrir una ventana emergente al pulsar el botón mediante Javascript, por lo que hacer un postback para esto no tiene mucho sentido ya que estarías recargando la página de nuevo con la consiguiente lentitud de navegación. Es preferible que el botón lance directamente la ventana popup. Así, cuando agregues el botón ponle esto:
Código:
boton.Attributes.Add("onClick","window.open('DetalleAsignatura.aspx?idAsignatura=" & valor & "',null,'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=170,left=50,top=50')";)
He puesto esto DetalleAsignatura.aspx?idAsignatura=valor porque me imagino que es lo que necesitas.
Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #3 (permalink)  
Antiguo 17/04/2008, 01:45
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Re: Enviar datos a un evento?

Lo que puedes hacer es añadirle un argumento al botón y luego lo capturas en el evento:

Código:
boton.CommandArgument = valor 
luego en el evento:
Código:
Dim valor As String = e.CommandArgument 'valor = valor 
De todas formas por lo que puedo ver, quieres abrir una ventana emergente al pulsar el botón mediante Javascript, por lo que hacer un postback para esto no tiene mucho sentido ya que estarías recargando la página de nuevo con la consiguiente lentitud de navegación. Es preferible que el botón lance directamente la ventana popup. Así, cuando agregues el botón ponle esto:
Código:
boton.Attributes.Add("onClick","window.open('DetalleAsignatura.aspx?idAsignatura=" & valor & "',null,'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=1,width=350,height=170,left=50,top=50');")

'Con esto te olvidas de añadirle un evento que requiera un postback 
He puesto esto DetalleAsignatura.aspx?idAsignatura=valor porque me imagino que es lo que necesitas.
Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!

Última edición por Bravenap; 17/04/2008 a las 02:03
  #4 (permalink)  
Antiguo 03/06/2008, 08:14
Avatar de Zoltam  
Fecha de Ingreso: diciembre-2004
Mensajes: 84
Antigüedad: 19 años, 5 meses
Puntos: 0
Respuesta: Enviar datos a un evento?

Buenas he estado probando esto y funciona bien, pero una apreciación El e del system.eventargs del butón no es el que contiene la propiedad CommandArgument, es el sender el que lo tiene Un ejemplo:

Cita:
Private Sub CrearBotonesGrupos(ByVal objPerfilesProfesionales_Col As OBJ_PORTALASISTENCIA.PERFILESPROFESIONALES_col)

Dim botonGrupo As Button
Dim intContador As Integer = 0

Try

For intContador = 0 To objPerfilesProfesionales_Col.Count - 1
botonGrupo = New Button
botonGrupo.ID = "btnGrupo_" & intContador
botonGrupo.Text = objPerfilesProfesionales_Col(intContador).DES_PERF IL
botonGrupo.CssClass = "boton-prueba"
botonGrupo.Width = "210"
botonGrupo.Height = "20"
botonGrupo.CommandArgument = objPerfilesProfesionales_Col(intContador).COD_PERF IL
AddHandler botonGrupo.Click, AddressOf Boton1_Click
pnlGrupos.Controls.Add(botonGrupo)
Next

Catch ex As Exception
End Try

End Sub
y el evento definido:

Cita:

Protected Sub Boton1_Click(ByVal sender As Object, ByVal e As System.EventArgs)

Dim sUrl As String = "DetalleAsignatura.aspx"
Dim sScript As String = "<script>alert('" & sender.CommandArgument & "');</script>"
Response.Write(sScript)

End Sub

Última edición por Zoltam; 03/06/2008 a las 15:47
  #5 (permalink)  
Antiguo 23/01/2009, 08:07
 
Fecha de Ingreso: mayo-2004
Mensajes: 189
Antigüedad: 20 años
Puntos: 1
Respuesta: Enviar datos a un evento?

Hola. He implementado el mismo ejemplo que detallan arriba y no logro hacerlo funcionar.
Mi codigo es:

Código:
            lnkPagina = New LinkButton
            lnkPagina.ID = "lnkPagina" & i
            lnkPagina.Text = i + 1
            lnkPagina.CommandArgument = i
            lnkPagina.ToolTip = "ir a pagina " & i + 1
            lnkPagina.CssClass = "link"
            AddHandler lnkPagina.Click, AddressOf Boton1_Click
            cdPagina.Controls.Add(lnkPagina)
esto esta dentro de un for y el link se introduce en una celda de un asp:Table. Esto lo genera sin problemas, pero al hacer click en el link, no ingresa en el evento este:

Código:
  Protected Sub Boton1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        If sender.CommandArgument <> "" Then
            armar_grilla(sender.CommandArgument)
        Else
            armar_grilla()
        End If
    End Sub
Ni siquiera ingresa en este Sub.
¿Hay algo mas echo que no estoy viendo?

Cualquier sugerencia sera bienvenida....

Saludos
__________________
Nadie nacío sabiendo...
  #6 (permalink)  
Antiguo 27/01/2009, 08:40
 
Fecha de Ingreso: junio-2003
Ubicación: Asturias
Mensajes: 2.429
Antigüedad: 20 años, 11 meses
Puntos: 7
Respuesta: Enviar datos a un evento?

Código:
    protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            LinkButton linkBoton = new LinkButton();
            linkBoton.Text = "Un texto";
            linkBoton.CommandArgument = "mi valor";
            linkBoton.CommandName = "Evento";
            linkBoton.Command += new CommandEventHandler(linkBoton_Command);

            this.Page.Form.Controls.Add(linkBoton);
        }
        catch (Exception ex)
        {
            string mm = ex.Message;
            throw;
        }
    }

    void linkBoton_Command(object sender, CommandEventArgs e)
    {
               
    }
__________________
Charlie.
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 11:45.