Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] meter en un url la pagina a la que se dirige pasandole una variable

Estas en el tema de meter en un url la pagina a la que se dirige pasandole una variable en el foro de .NET en Foros del Web. Hola, Necesito vuestra ayuda. a ver si me puedo explicar bien. Lo que hago es una consulta a un bbdd y lo que me va ...
  #1 (permalink)  
Antiguo 23/04/2013, 03:03
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Pregunta meter en un url la pagina a la que se dirige pasandole una variable

Hola,

Necesito vuestra ayuda. a ver si me puedo explicar bien. Lo que hago es una consulta a un bbdd y lo que me va devolviendo lo escribo en una tabla de la forma que se ve en el código. Lo que necesito es que en la ultima celda, la llamada objCell3 que lo he puesto en negrita, se cargue un link o una url que iría a una pagina llamada HorasOperarios.aspx pero a su vez quiero pasarle el numoperario. Para que así se cargen cosas que tengan que ver con ese operario en la pagina HorasOperarios.aspx.

¿Como puedo hacer esto?

Código vb.net:
Ver original
  1. With mysql_comando
  2.                         reader = .ExecuteReader()
  3.                         While reader.Read()
  4.  
  5.                             objRow = New TableRow()
  6.                             Dim objCell1, objCell2, objCell3, objCell4 As New TableCell()
  7.                             Dim linkDetalle, linkMes As New HyperLink()
  8.  
  9.                             numoperario = reader.GetValue(0)
  10.                             nombre = reader.GetValue(1)
  11.  
  12.                             objCell1.Controls.Add(New LiteralControl(numoperario))
  13.                             objCell1.HorizontalAlign = HorizontalAlign.Center
  14.                             objCell2.Controls.Add(New LiteralControl(nombre))
  15.                             objCell2.HorizontalAlign = HorizontalAlign.Left
  16.                             [B]linkDetalle.Text = "Detalle"
  17.                             linkDetalle.NavigateUrl = "~/HorasOperarios.aspx"
  18.                             objCell3.Controls.Add(New LiteralControl(linkDetalle.Text))[/B]
  19.  
  20.                             objCell4.Controls.Add(New LiteralControl(numoperario))
  21.                             objCell4.Visible = False
  22.                             objRow.Cells.Add(objCell1)
  23.                             objRow.Cells.Add(objCell2)
  24.                             objRow.Cells.Add(objCell3)
  25.                             'objRow.Cells.Add(objCell4)
  26.                             Table2.Rows.Add(objRow)
  27.                         End While
  28.                         .Dispose()
  29.                     End With

__________________
Gracias por todo;

Un saludo
  #2 (permalink)  
Antiguo 23/04/2013, 03:23
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Seria algo así como:

Código:
linkDetalle.NavigateUrl = "~/HorasOperarios.aspx?numOperario=" & numoperario
Aunque es poco seguro porque pueden modificar el valor por la barra(url) pero es un inicio. Si te funciona después de digo como hacerlo más seguro ;)
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 23/04/2013, 03:30
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Pregunta Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Cita:
Iniciado por Malenko Ver Mensaje
Seria algo así como:

Código:
linkDetalle.NavigateUrl = "~/HorasOperarios.aspx?numOperario=" & numoperario
Aunque es poco seguro porque pueden modificar el valor por la barra(url) pero es un inicio. Si te funciona después de digo como hacerlo más seguro ;)

Funciona perfecto!!!! Gracias.


Tengo otra pregunta. Si te fijas en el código tengo puesto que se muestre, en la columna donde iría esa url, que se muestre el text de la url, en este caso se mostraría la palabra "Detalle" pero me pongo encima de esa palabra y no me deja clicar. ¿Sabes tu si tengo que hacer algo para que me deje clicar en ella y asi que vaya a la url que indica con el noperario correspondiente?

Código vb.net:
Ver original
  1. With mysql_comando
  2.                         reader = .ExecuteReader()
  3.                         While reader.Read()
  4.  
  5.                             objRow = New TableRow()
  6.                             Dim objCell1, objCell2, objCell3, objCell4 As New TableCell()
  7.                             Dim linkDetalle, linkMes As New HyperLink()
  8.  
  9.                             numoperario = reader.GetValue(0)
  10.                             nombre = reader.GetValue(1)
  11.  
  12.                             objCell1.Controls.Add(New LiteralControl(numoperario))
  13.                             objCell1.HorizontalAlign = HorizontalAlign.Center
  14.                             objCell2.Controls.Add(New LiteralControl(nombre))
  15.                             objCell2.HorizontalAlign = HorizontalAlign.Left
  16.                             linkDetalle.Text = "Detalle"
  17.                             linkDetalle.NavigateUrl = "~/HorasOperarios.aspx?numOperario=" & numoperario
  18.                             [B]objCell3.Controls.Add(New LiteralControl(linkDetalle.Text ))[/B]
  19.  
  20.                             objCell4.Controls.Add(New LiteralControl(numoperario))
  21.                             objCell4.Visible = False
  22.                             objRow.Cells.Add(objCell1)
  23.                             objRow.Cells.Add(objCell2)
  24.                             objRow.Cells.Add(objCell3)
  25.                             'objRow.Cells.Add(objCell4)
  26.                             Table2.Rows.Add(objRow)
  27.                         End While
  28.                         .Dispose()
  29.                     End With
__________________
Gracias por todo;

Un saludo
  #4 (permalink)  
Antiguo 23/04/2013, 03:56
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Yo controles dinámicos no he tocado mucho pero diría que más que llamar a la propiedad "Text" porque es el Texto del link:
Código:
linkDetalle.Text
tendrías que usar el RenderControl para que te genere todo el código HTML (<a href=...)
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 23/04/2013, 04:37
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Cita:
Iniciado por Malenko Ver Mensaje
Yo controles dinámicos no he tocado mucho pero diría que más que llamar a la propiedad "Text" porque es el Texto del link:
Código:
linkDetalle.Text
tendrías que usar el RenderControl para que te genere todo el código HTML (<a href=...)

Ya lo he echo, a ver si me puedes ayudar en esto.

Hago lo siguiente pero ahora no me muestra el nombre del link al que tengo que clicar, es decir, el objCell3 no me pinta nada en la tabla

Código vb.net:
Ver original
  1. With mysql_comando
  2.                         reader = .ExecuteReader()
  3.                         While reader.Read()
  4.  
  5.                             objRow = New TableRow()
  6.                             Dim objCell1, objCell2, objCell3, objCell4 As New TableCell()
  7.                             Dim linkDetalle As String
  8.                             Dim link As HtmlTextWriter
  9.  
  10.                             numoperario = reader.GetValue(0)
  11.                             nombre = reader.GetValue(1)
  12.  
  13.                             objCell1.Controls.Add(New LiteralControl(numoperario))
  14.                             objCell1.HorizontalAlign = HorizontalAlign.Center
  15.                             objCell2.Controls.Add(New LiteralControl(nombre))
  16.                             objCell2.HorizontalAlign = HorizontalAlign.Left
  17.  
  18.                             Dim sw As StringWriter = New StringWriter
  19.                             Dim ht As HtmlTextWriter = New HtmlTextWriter(sw)
  20.  
  21.                             ' Create the a.
  22.                             ht.AddAttribute(HtmlTextWriterAttribute.Href, "~/HorasOperarios.aspx?numOperario=" & numoperario)
  23.                             ht.RenderBeginTag(HtmlTextWriterTag.A)
  24.  
  25.                             ' End all the tags.
  26.                             ht.RenderEndTag()
  27.                             linkDetalle = sw.ToString()
  28.                             [B]objCell3.Controls.Add(New LiteralControl(linkDetalle))[/B]
  29.  
  30.                             objRow.Cells.Add(objCell1)
  31.                             objRow.Cells.Add(objCell2)
  32.                             objRow.Cells.Add(objCell3)
  33.                             Table2.Rows.Add(objRow)
  34.                         End While
  35.                         .Dispose()
  36.                     End With
__________________
Gracias por todo;

Un saludo
  #6 (permalink)  
Antiguo 23/04/2013, 04:51
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Si abres la web en el navegador y haces "Ver codigo fuente", has visto si el link está creado? Es posible que no esté del todo correcto y se imprima pero no se vea. Si nisiquiera lo ves en el codigo fuente de la web, es que falta algún detalle.
__________________
Aviso: No se resuelven dudas por MP!
  #7 (permalink)  
Antiguo 23/04/2013, 04:57
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Cita:
Iniciado por Malenko Ver Mensaje
Si abres la web en el navegador y haces "Ver codigo fuente", has visto si el link está creado? Es posible que no esté del todo correcto y se imprima pero no se vea. Si nisiquiera lo ves en el codigo fuente de la web, es que falta algún detalle.
Si, al mirar el código fuente si se ve que se cree el link, pero no me aparece en la tabla.

Esto es lo que veo en el codigo fuente:

Código codigo fuente:
Ver original
  1. </tr><tr>
  2.         <td align="center"></td><td align="left"></td><td><a href="HorasOperarios.aspx?numOperario="></a></td>
  3.     </tr><tr>
  4.         <td align="center">1180</td><td align="left"> ALAIN ALKORTA</td><td><a href="HorasOperarios.aspx?numOperario=1180"></a></td>
  5.     </tr><tr>
  6.         <td align="center">9534</td><td align="left"> ALAIN ALKORTA</td><td><a href="HorasOperarios.aspx?numOperario=9534"></a></td>
  7.     </tr><tr>
  8.         <td align="center">2222</td><td align="left">ABEL LARRETA</td><td><a href="HorasOperarios.aspx?numOperario=2222"></a></td>
  9.     </tr><tr>
  10.         <td align="center">2107</td><td align="left">ADRIAN FAJARDO</td><td><a href="HorasOperarios.aspx?numOperario=2107"></a></td>
  11.     </tr><tr>
  12.         <td align="center">2696</td><td align="left">ADUR ARTEAGA</td><td><a href="HorasOperarios.aspx?numOperario=2696"></a></td>
  13.     </tr><tr>
  14.         <td align="center">990</td><td align="left">ADUR IRUIN ARRUTI</td><td><a href="HorasOperarios.aspx?numOperario=990"></a></td>
  15.     </tr><tr>
  16.         <td align="center">548</td><td align="left">AGUSTIN ALUSTIZA</td><td><a href="HorasOperarios.aspx?numOperario=548"></a></td>
  17.     </tr><tr>
  18.         <td align="center">2819</td><td align="left">AGUSTIN DE ARRIBA</td><td><a href="HorasOperarios.aspx?numOperario=2819"></a></td>
__________________
Gracias por todo;

Un saludo
  #8 (permalink)  
Antiguo 23/04/2013, 06:12
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 3 meses
Puntos: 606
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

He encontrado un ejemplo muy muy parecido a lo que tu quieres hacer (crear un link html en una tabla). A ver si te sirve de guia:

http://www.vbforums.com/showthread.p...ks-at-run-time
__________________
Aviso: No se resuelven dudas por MP!
  #9 (permalink)  
Antiguo 23/04/2013, 06:58
 
Fecha de Ingreso: abril-2012
Mensajes: 449
Antigüedad: 12 años
Puntos: 7
Respuesta: meter en un url la pagina a la que se dirige pasandole una variable

Cita:
Iniciado por Malenko Ver Mensaje
He encontrado un ejemplo muy muy parecido a lo que tu quieres hacer (crear un link html en una tabla). A ver si te sirve de guia:

http://www.vbforums.com/showthread.p...ks-at-run-time

Muchas gracias!!!
Me ha servido muchísimo. Y guiándome de lo que me has mandado la he echo asi!


Código vb.net:
Ver original
  1. With mysql_comando
  2.                         reader = .ExecuteReader()
  3.                         While reader.Read()
  4.  
  5.                             objRow = New TableRow()
  6.                             Dim objCell1, objCell2, objCell3, objCell4 As New TableCell()
  7.                             Dim linkDetalle, linkMes As String
  8.                             Dim sw1 As StringWriter = New StringWriter
  9.                             Dim ht1 As HtmlTextWriter = New HtmlTextWriter(sw1)
  10.                             Dim sw2 As StringWriter = New StringWriter
  11.                             Dim ht2 As HtmlTextWriter = New HtmlTextWriter(sw2)
  12.                             'Dim link As HtmlTextWriter
  13.  
  14.                             numoperario = reader.GetValue(0)
  15.                             nombre = reader.GetValue(1)
  16.  
  17.                             objCell1.Controls.Add(New LiteralControl(numoperario))
  18.                             objCell1.HorizontalAlign = HorizontalAlign.Center
  19.                             objCell2.Controls.Add(New LiteralControl(nombre))
  20.                             objCell2.HorizontalAlign = HorizontalAlign.Left
  21.  
  22.                             ' Create the a.
  23.                             ht1.AddAttribute(HtmlTextWriterAttribute.Href, "HorasOperarios.aspx?numOperario=" & numoperario)
  24.                             ht1.RenderBeginTag(HtmlTextWriterTag.A)
  25.                             ht1.Write("Detalle mensual")
  26.                             ' End all the tags.
  27.                             ht1.RenderEndTag()
  28.                             linkDetalle = sw1.ToString()
  29.                             objCell3.Controls.Add(New LiteralControl(linkDetalle))
  30.  
  31.                             ' Create the a.
  32.                             ht2.AddAttribute(HtmlTextWriterAttribute.Href, "HorasOperariosMes.aspx?numOperario=" & numoperario)
  33.                             ht2.RenderBeginTag(HtmlTextWriterTag.A)
  34.                             ht2.Write("Mes entero")
  35.                             ' End all the tags.
  36.                             ht2.RenderEndTag()
  37.                             linkMes = sw2.ToString()
  38.                             objCell4.Controls.Add(New LiteralControl(linkMes))
  39.  
  40.                             objRow.Cells.Add(objCell1)
  41.                             objRow.Cells.Add(objCell2)
  42.                             objRow.Cells.Add(objCell3)
  43.                             objRow.Cells.Add(objCell4)
  44.                             Table2.Rows.Add(objRow)
  45.                         End While
  46.                         .Dispose()
  47.                     End With

Gracias por todo, has sido de gran ayuda.

__________________
Gracias por todo;

Un saludo

Etiquetas: bd, meter, sql, tabla, url, variable
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 21:48.