none
Programar Objetos dinámicos ASP.NET RRS feed

  • Pregunta

  • Buenas!

    El problema es el siguiente:

    Creo dinámicamente tantos botones como imágenes haya subido el usuario (Que no se cuantas son, ya que no es un número fijo), pero no se agruparlos de tal forma para programarlos por igual. He probado con: BTN_Ver.OnClientClick = Seleccionar_Imagen(BTN_Ver.ID.ToString)

    Pero de ésta manera se me ejecuta cada vez que crea un botón.

    Pongo el código en cuestión:

    -------------------------------------------------------------------------------------------

    Dim CadenaSelecccion as String = "(Cadena Select)"

    Tabla = CargarDT(cadenaSeleccion)

    For Contador_For = 0 To Tabla.Rows.Count - 1
                    Dim PNL_Img As New Panel
                    PNL_Img.CssClass = "ASP_Contenido_PNL_Fotos"
                    PNL_Dinamico.Controls.Add(PNL_Img)
                    Dim Img As New Image
                    Img.Visible = True
                    Img.ID = "IMG_" & Contador_For
                    Img.ImageUrl = Tabla.Rows(Contador_For)(2)
                    Img.CssClass = "ASP_Foto_PNL"
                    Img.DataBind()
                    PNL_Img.Controls.Add(Img)
                    Dim BTN_Ver As New Button
                    BTN_Ver.Text = "Ver"
                    BTN_Ver.CssClass = "ASP_Boton_2"
                    BTN_Ver.ID = "BTN_" & Contador_For
                    PNL_Img.Controls.Add(BTN_Ver)
                Next

    -------------------------------------------------------------------------------------------------------------------

    Bien, los botones se crea, pero como los programo?
    miércoles, 10 de octubre de 2012 8:11

Todas las respuestas

  • Si lo que desea es asignar un Javascript al clic del botón, entonces es BTN_Ver.OnClientClick = "<aquí se pone el javascript que debe correrse>".  Por ejemplo, asumiendo que existe una función en JavaScript llamada fnHacerAlgo(), entonces sería BTN_Ver.OnClientClick = "fnHacerAlgo();".

    Jose R. MCP
    Code Samples

    miércoles, 10 de octubre de 2012 16:17
    Moderador
  • Antes que nada, gracias por responder.

    Necesitaría, por las variables que tengo, programarlo en ASP.

    Siendo x un número indefinido

    ¿Se pueden agrupar los botones de tal forma que en la cláusula Handles puedas especificar x botones?

    ¿Pueden ir los tiros por la cláusula Withevent?

    En tal caso, ¿cómo se haría?.

    jueves, 11 de octubre de 2012 11:01
  • Si necesita modificar el Javascript en ASP.net lo puede hacer simplemente como hace otras cosas en el ASPX.  No sé de VB.net así que no le pongo un ejemplo, pero en C# uno puede escribir directamente un valor a una variable de Javascript, y dicha variable puede luego ser utilizada por la función.

    <script type="text/javascript" language="Javascript">
        var myVariableDeJavascript = <% DateTime.Now %>;
    </script>

    Eso sería un ejemplo de cómo lo haría yo, aunque no sé si eso es sintaxis válida para proyectos VB.net.

    Para las demás dudas de WithEvents y Handles, le recomiendo hacer la pregunta en el foro de Visual Basic.


    Jose R. MCP
    Code Samples

    jueves, 11 de octubre de 2012 13:52
    Moderador
  • Ok. Gracias por las molestias ^_~

    Preguntaré en el foro de Visual Basic para lo de Handles y WithEvents.

    lunes, 15 de octubre de 2012 8:12
  • Buenas.

    La respuesta era usar al crear el button en el for:

    AddHandler BTN_Ver.Click, AddressOf BTN_Ver_Click

    y declarar el evento:

    Sub BTN_Ver_Click(ByVal sender As Object, ByVal e As EventArgs) Dim btn As button = DirectCast(sender, button) End Sub

    Problema solucionado. Mil gracias por todo ^^.

    martes, 16 de octubre de 2012 8:54
  • Ah entonces no era un evento del botón del lado del cliente, era el evento del lado del servidor.  Mi respuesta apuntaba al uso de OnClientClick, que es un evento consumible via Javascript únicamente.

    En fin, excelente que ya haya resuelto el problema.


    Jose R. MCP
    Code Samples

    martes, 16 de octubre de 2012 13:36
    Moderador