Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   ASPX (.net) (http://www.forosdelweb.com/f78/)
-   -   Enviar datos a un evento? (http://www.forosdelweb.com/f78/enviar-datos-evento-576754/)

skel363 16/04/2008 16:21

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!!!!

Bravenap 17/04/2008 01:43

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.

Bravenap 17/04/2008 01:45

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.

Zoltam 03/06/2008 08:14

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

sanref 23/01/2009 08:07

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

chcma 27/01/2009 08:40

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)
    {
             
    }



La zona horaria es GMT -6. Ahora son las 23:06.

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.