Gracias José por tu respuesta lo voy a revisar y te rspondo! saludos y 
nuevamente GRACIAS!!!
  ----- Original Message ----- 
  From: José A. Fernández 
  To: puntonet@mug.org.ar 
  Sent: Wednesday, April 16, 2008 6:13 PM
  Subject: [puntonet] Eventos


  Hola Andres

  El código que enviaste hace un postback al servidor para solamente escribir 
el script de apertura de la nueva ventana.
  además de este script lo debes registrar en la pagina y no simplemente 
escribirlo con response.write., para que asp.net tenga un poco mas de control.

  Vamos por parte, registrar el script (algo sencillo)

     Private Sub RegistrarScriptAperturaVentana()
          Dim scriptVentana as New System.Text.StringBuilder 
         scriptVentana.Append("<script language=""javascript"">"  & vbCrLf)
         scriptVentana.Append("function VerDetalle(codPlan){" & vbCrLf)
         scriptVentana.Append("    alert(codPlan);" & vbCrLf)
         scriptVentana.Append("}" & vbCrLf)
         scriptVentana.Append("</script>"  & vbCrLf) 
         ClientScript.RegisterStartupScript(Me.GetType(), "ABRIR", 
scriptVentana.ToString) 
     End Sub
     
  Esto codigo lo puedes escribir tranquilamente dentro de tu pagina, tu 
masterpage o tu archivo .js externo...ya que no contiene nada raro, puro js.
  Es decir no es necesario hacerlo desde el codebehind.

  Cuando lo llamamos al script...yo lo armaria en el evento RowDataBound... 
  Si tienes en tu gridview las columnas y creas una columna template y dentro 
un linkbutton
      ...
      <asp:TemplateField>
          <ItemTemplate>
                 <asp:LinkButton ID="linkDetalle" 
runat="server">Detalle</asp:LinkButton>
          </ItemTemplate>
      </asp:TemplateField>
      ...            
  En el codebehind, en el evento RowDataBound algo asi

   Sub tuGrilla_RowDataBound(ByVal sender As Object, ByVal e As 
GridViewRowEventArgs)

      If e.Row.RowType = DataControlRowType.DataRow Then    
          Dim linkDetalle as LinkButton = 
Ctype(e.Row.FindControl("linkDetalle"), LinkButton) 
          Dim codigoPlan As Int32= 
convert.Toint32(DataBinder.Eval(e.Row.DataItem, "Cod_Plan ")) 
          
          linkDetalle.OnClientClick = "VerDetalle('" & codigoPlan & "'); return 
false;"   //Luego te comento el return false       
          
      End If    
    End Sub

  Asi ya cuando esta armando la grilla, en cada enlace/boton estara el codigo 
para llamar VerDEtalle que es una funcion del lado del cliente.
  El "return false;" es para que el webcontorl que elegiste, que es un 
LinkButton no realice el postback ya que no lo necesita.

  Tambien como nos brinda la posibilidad de escribir en el diseño codigo 
...puedes hacer lo mismo escirbiendo esto en la vista de codigo de la pagina 
donde defines las columnas
  y tambien mediante el wizard (con las etiquetas inteligentes del control 
dentro del template)
  Quedaria algo asi:
      <asp:TemplateField>
          <ItemTemplate>
                  <asp:LinkButton ID="linkDetalle" 
                          runat="server" 
                          OnClientClick='<%# String.Concat("VerDetalle(", 
Eval("Cod_Plan"), "); return false;") %>'>Detalle</asp:LinkButton>
          </ItemTemplate>
      </asp:TemplateField>

      
                  
  Enlaces:
  ------------------
  GridView.RowDataBound (Evento) 
  Se produce cuando una fila de datos se enlaza a los datos de un control 
GridView. 
  
http://msdn2.microsoft.com/es-es/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx

  String.Concat (Método)
  Concatena una o más instancias de String o las representaciones de tipo 
String de los valores de una o más instancias de Object. 
  http://msdn2.microsoft.com/es-es/library/system.string.concat(VS.80).aspx


  Espero que te sirva de ayuda o guia

  _______________________
  Ing. José A. Fernández
  fernandezja @ gmail . com




  On Wed, Apr 16, 2008 at 1:58 PM, Andrés Guzmán O <[EMAIL PROTECTED]> wrote:

    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)

    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

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


    Andrés Guzmán O.
    [EMAIL PROTECTED]
    6711130 anexo 106



  --  

Responder a