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

Crear un hipervinculo en una tabla dinámica

Estas en el tema de Crear un hipervinculo en una tabla dinámica en el foro de .NET en Foros del Web. Tengo que crear un calendario de horarios con aulas y mostrar en casillas cuando esta ocupada el aula.Y al pinchar en la casilla que redirecione ...
  #1 (permalink)  
Antiguo 29/06/2005, 07:36
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Crear un hipervinculo en una tabla dinámica

Tengo que crear un calendario de horarios con aulas y mostrar en casillas cuando esta ocupada el aula.Y al pinchar en la casilla que redirecione a los datos de quien lo ocupa.

Entonces,tengo una tabla que construiré dinámicamente,ya que dependerá de las aulas que haya en los diferentes centros por lo que no sabré el número de columnas y de si está o no ocupado...

Hasta ahora no había hecho nada dinámico (nada parecido) pero he encontrado un ejemplo de como ir añadiendo filas de una tabla aquí:
http://msdn.microsoft.com/library/sp...classtopic.asp
Entonces el eejmplo le añade a la celda un texto
tempCell.Text = "(" & i & "," & j & ")"
Como podría añadirle un hipervinculo y un color a la celda??

Alguien me podría aconsejar algo?
Gracias de antemano
  #2 (permalink)  
Antiguo 29/06/2005, 08:51
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
tempCell.Style.Add("backcolor","#006600")

y

tempCell.Attributes.Add("onclick","javascript:docu ment.href='dondesea.aspx'")

Cuanto tiempo Neivan!!!
  #3 (permalink)  
Antiguo 30/06/2005, 02:03
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
aupa Jose_minglein2
probé eso y no me aparece naa,te comento como lo tengo para ver si tengo fallos (seguro que tengo):

Private Sub Page_Load(sender As Object, e As System.EventArgs)
Dim tableStyle As New TableItemStyle()
tableStyle.HorizontalAlign = HorizontalAlign.Center
tableStyle.VerticalAlign = VerticalAlign.Middle
tableStyle.Width = Unit.Pixel(100)
' Create more rows for the table.

Dim tempRow As New Tablerow()

Dim tempCell As New TableCell()
tempCell.Text = "si"
tempCell.Style.Add("backcolor","#006600")
tempCell.Attributes.Add("onclick","javascript:docu ment.href='inicio.aspx'")
tempRow.Cells.Add(tempCell)
Table1.Rows.Add(tempRow)
Table1.Rows.Add(tempRow)
' Create a header for the table.
Dim header As New TableHeaderCell()
header.RowSpan = 1
header.ColumnSpan = 3
header.Text = "MEs de Enero"
header.Font.Bold = true
'header.BackColor = Color.CornflowerBlue
header.HorizontalAlign = HorizontalAlign.Center
header.VerticalAlign = VerticalAlign.Middle

' Add the header to a new row.
Dim headerRow As New TableRow()
headerRow.Cells.Add(header)

' Add the header row to the table.
Table1.Rows.AddAt(0, headerRow)

End Sub

<html>
<head>
</head>
<body>
<form runat="server">
<!-- Insert content here -->
<h1>TableCell Example
</h1>
<asp:table id="Table1" runat="server" border="1" CellPadding="3" CellSpacing="3">
<asp:TableRow></asp:TableRow>
<asp:TableRow>
<asp:TableCell Text="8:00"></asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell Text="8:30"></asp:TableCell>
</asp:TableRow>

</asp:table>
</form>
</body>
</html>

Es un ejercicio de pruebas...
  #4 (permalink)  
Antiguo 30/06/2005, 02:31
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
Prueba con:

tempCell.BackColor = System.Drawing.Color.Red (o el que quieras)

el onclick tampoco te va????si es así, añade un ; al final y un window al principio y un location en el medio(que seguramente sea eso, que se me habia olvidao):
tempCell.Attributes.Add("onclick","javascript:wind ow.document.location.href='inicio.aspx';")
  #5 (permalink)  
Antiguo 30/06/2005, 02:47
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Si ya va,se colorea la celda y si pinchas sobre ella redirecciona,aunque quizás vendría bien añadirle la propiedad de que cuando pase por encima con el ratón cambie de color.
Una cosa si que igual me interesa más y es que en vez de redireccionar ,que habra en otra pantalla (target="_blank") esto donde lo metería??
Gracias Jose_minglein2
  #6 (permalink)  
Antiguo 30/06/2005, 03:02
Avatar de moNTeZIon  
Fecha de Ingreso: enero-2005
Ubicación: Lliçà de Munt - BCN
Mensajes: 1.625
Antigüedad: 19 años, 2 meses
Puntos: 9
En vez de window.document.location.href="ppp.aspx"

Harías:

window.open("ppp.aspx")

Saludos.
__________________
..:: moNTeZIon ::..
  #7 (permalink)  
Antiguo 30/06/2005, 03:07
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
pues en vez de document.location....

pones

"javascript:window.open('pagina.aspx');" y te lo habre en una nueva.

Lo de que pase por encima debes hacerlo por javascript, p.ej. creas una función en tu página que te lo cambie, y luego sería:

celda.attributes.add("onmouseover","javascript:mif uncion();")
  #8 (permalink)  
Antiguo 05/07/2005, 09:06
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Aupa,la tabla me salio preciosa,gracias Jose_minglein2 ,con colorines dependiendo de la pcupación que tenga cada hora y cada aula y con redireccion a datos concretos de las aulas que ocupan cada casilla.......

Aunque me quedan un par de cosillas para terminar.
He imprimido una prueba (elijiendo en propiedades de la impresora a color...) y no me imprime los colores.
El problema más importante es que si tengo más de 4 aulas (son 6 en las 2 academias) se keda colgado por que me responde q demasiado tiempo esperando...Se tira un huevo pensando y tira el error (aproximanda mente un minuto)
LA página tiene bastante codigo ya q tengo q hacer muchas comprobaciones,voy a hecharle un vistacillo al web config para ver si puedo ampliar el tiempo de espera máximo,supongo q será de ahí.
La última es haber si hay un tamaño de letra q le peuda meter más pequeño q el xxsmaller por q me sale gigante el listado.

Saludos
  #9 (permalink)  
Antiguo 05/07/2005, 09:20
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Una preguntita,en custion de las tablas hay algún tipo de restrición por el hecho de q te ocupe toda la pantalla a lo ancho???
Por q no veo mu lógco que con 4 aulas se me carge la página en un plas y con 5 ya no
System.Web.HttpException: Request timed out.
Con 4 me ocupa too el ancho del navegador.
  #10 (permalink)  
Antiguo 05/07/2005, 14:19
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
Bueno respecto a lo del tamaño de letra puedes crearte un estilo y definirle tu el tamaño en número sin utilizar small y todo eso. Es decir, la puedes poner a 8 a 6 o a lo que quieras, mañana te digo la propiedad exacta, pero creo que es:
.size
aunque no me hagas mucho caso.
Lo que dices, mmmmmmmm, lo veo raro, aunque tengas que hacer muchas comprobaciones (yo tengo una página que las hace y con acceso a la BD y tal). Es extraño que con 4 vaya bien y con 5 se ralle, asegurate de que la 5ª no entra en un bucle infinito o algo así, por sus condiciones o por recursividad, porque parece ser lo más probable.
  #11 (permalink)  
Antiguo 06/07/2005, 01:11
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
voy a chequear bien todo el codigo haber si es eso por que probe a cambiar el texto que venia en las casillas vacias(sin ocupacion en las que tenia puesto un codigo puesto para ver cuanto de ancho podia llegar a ser si todo estubiera ocupado) y habia hueco para todas las columnas y se seguía colgando asi que es cuestion de algun bucle quizas....
Por lo del tamaño,size es la que utilizo para definir con small y eso...
http://msdn.microsoft.com/library/de...sfonttopic.asp
Aqui pone utilizar sólo con eso.
  #12 (permalink)  
Antiguo 06/07/2005, 01:17
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
lo del tamaño es:
font-size: 10pt;
p.ej. (te recomiendo 8 o 9 para una vista profesional)

Lo de la pantalla ya te digo que no tiene nada que ver, pero si estás intentando lo que imagino, puedes recortar el texto y poner ..., y añadirle un tooltip que muestre el texto entero, yo he usado esa opción en algunas partes de mi aplicación para optimizar la vista (sobre todo para 800x600)

Y ya te digo que casi seguro que es un bucle, si ves que no encuentras pon el code y te ayudo a buscar.


Un saludo Neivan
  #13 (permalink)  
Antiguo 06/07/2005, 03:16
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
No encuentro nada que me haga ver que se queda en algún bucle.
Además se trata d euna creación dinamica de columnas en las que solo cambia el hecho de que el dataset tieen 2 posiciones mas,por lo que el bcle for primero aumenta en 2,dentro de este bulce hay otro en el que se crean 4 columnas por aula y que es igual apra cuaquier aula....

Lo del tamaño yo ponia esto:
tempcellhoras.font.size=System.Web.UI.WebControls. FontUnit.xxsmall
como pongo lo de font-size,he probado como ppones tu,con comillas con = ....buscando en internet....
  #14 (permalink)  
Antiguo 06/07/2005, 03:30
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
lo del tamaño te recomiendo que crees un estilo en tu hoja, y hagas así:

tempcellhoras.cssclass = "nombredeestilo"

pero esto ponlo antes de cambiar el color, para que no afecte, si no hazlo así:

tempcellhoras.Font.Size.Unit.Point(8)

Con respecto a lo otro ya te digo que no tiene sentido, asegurate que en los bucles no haces dentro de ningun if el aumento del i, o que lo haces en todos de forma correcta. Prueba también que no ejecutas una operación no válida, no se. Ya te digo, que si quieres poner el code lo miraba, si no es dificil.

Un saludo.
  #15 (permalink)  
Antiguo 06/07/2005, 04:11
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
He encontrado uan cosilla que quizás pueda tener algo que ver,no se te comento,aunque debería lanzar otro erro y no el de Request timed out.

Como la tabla la creo dinamicamente,voy añadiendo fila a fila.
Cada fila tendra tantas columans como nuemro de aulas,y cada aula 4 columnas más uqe seran 4 semanas por cada aula.
Para identificar la ocupación de la semana se hace de 2 formas,el clor indicará como de ocupada esta esa semana(para el horario que reprenta la fila en la que me encunetro) y cada vez que inicia un curso aparece su codigo en la casilla,pero para no andar repitiendo too el rato el codigo (en todas als casillas),solo aparecen los codigos en las casillas cuando hay cambios.Por ejmplo
de 8:00 de la mañana a 12:00 esta varde por que hay un curso de lunes a viernes.Entonces alas 8 aparece su codigo.Ahora alas 10 los sabados tb hay un curso en este aula y apra est asemana => que camnia de color y de cursos por lo que en la priemra casilla de la nuev asituacion volvera a aparecer el cod del curso anterior y el del neuvo....
Para controlar esto utilizo un string que tiene metidos separados por . todos los coidgos que aparecen en una semana en la fila anterior para cdo recoore una fila saber q en la anterior fila en esa posicion habia tales cursos....
Tieen el string un limite de tamaño,puede tenr algo q ver,??? me parece que no en este caso,tmapoco estan largo un maximo de 6 cursos * 4 = 24 por como mucho mucho ymuy raro 3 cursos cuyo cofigo sera de 5 0 6 como mucho,.....???

El code ocupa 650 lienas ,asi q si lo keires hechar un vistazo mejor te lo mando mejor...
  #16 (permalink)  
Antiguo 06/07/2005, 04:28
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Si ahi debe estar el error,he ido comentado de la raiz a las diferentes ramas (si entendemso esto por las diefentes cosas que ahcen los bucles ....) y he identificado en lugar dodne se bloquea,es la zona en la que se tratta esto del strign qte he comentado,si comento esto,es decir,el .text de las celdas el resto (los colores y too va bien....)

Voy a cambiarlo por un arraylist y te comento haber si me funciona con eso

Última edición por neivan; 06/07/2005 a las 04:41
  #17 (permalink)  
Antiguo 06/07/2005, 05:56
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
asegurate de que cuando recorres el array haces un i+=1 (o lo que corresponda), en principio para hacer un split no lo podrás meter en un arraylist, si no en un array siempre, asi que por ahí debe de andar el fallo, si me lo quiere mandar

[email protected]
  #18 (permalink)  
Antiguo 06/07/2005, 07:21
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Gracias Jose,ya me funciona,era eso,le he cambiado por arraylist,simplemnte con una varable sabiendo en que posicion estoy y accediento a esa posción en el arraylist....
Lo único que me falta e sporque al imprimir no em muestr also colores.

Los colores aparecen en el explorador bien,tengo puestos stos:
if miscolores="aquamarine" then
tempCell.BackColor = System.Drawing.Color.aquamarine
end if
if miscolores="pink" then
tempCell.BackColor = System.Drawing.Color.pink
end if
if miscolores="floralwhite" then
tempCell.BackColor = System.Drawing.Color.floralwhite
end if
if miscolores="yellow" then
tempCell.BackColor = System.Drawing.Color.yellow
end if

Y al imprimir no me salen en la impresora coloreados
  #19 (permalink)  
Antiguo 06/07/2005, 08:54
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
Estas imprimiendo desde archivo-Imprimir???

Tiene tu impresora tinta de color????

No se, esto que comentas, nunca lo he probado, yo si el cliente quiere imprimir algo que no está documentado es cosa suya, en caso contrario, genero un PDF (con el dynamic) y desde ahí si me sale en color.

Es que ahora no tengo ninguna impresora en color disponible para decirte algo, pero te puedo decir que en vista preliminar, si que me sale en color.
  #20 (permalink)  
Antiguo 06/07/2005, 09:12
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
En vista preliminar no me sale en color.

Lo del tamaño con tempcellhoras.Font.Size.Unit.Point(8) no me reduce nada (ni con 6... notiene efecto sobre el tamaño...) en principio lo deje con xxsmallerr,pero me acaban de pedir una columna mas por curso y ya si q tengo q reducir el tamaño del texto.
  #21 (permalink)  
Antiguo 06/07/2005, 09:48
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8
ok, lo del tamaño hazlo así:

tempCell.Style.Add("font-size", "8pt")

y te aseguras de que funciona,

Lo de imprimir, quizá sea la configuración de tu explorador, mira en

Herramientas - Opciones de Internet - Opciones Avanzadas

y ahí busca impresión (a mi me sale el segundo menú grande) y asegurate de que tienes activo lo de permitir color, si te pasa eso, conseguido, no???
  #22 (permalink)  
Antiguo 06/07/2005, 09:56
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 1 mes
Puntos: 1
Ya esta tio,gracias de nuevo.
Listado terminado ,imprime y reducido para que entre en una página....
Eran las opciones del esplorer...ponia no imprimiir colores.
  #23 (permalink)  
Antiguo 06/07/2005, 10:13
Avatar de Jose_minglein2  
Fecha de Ingreso: noviembre-2004
Mensajes: 2.344
Antigüedad: 19 años, 4 meses
Puntos: 8



me alegro
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:45.