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

Poner hyperlink dinamico en datagrid _-App Web-_ASP.NET

Estas en el tema de Poner hyperlink dinamico en datagrid _-App Web-_ASP.NET en el foro de .NET en Foros del Web. Hola!! Estoy intentando realizar una cosilla y no la consigo..... Es lo siguiente: Tengo un datagrid que relleno con datos de una BD mediante un ...
  #1 (permalink)  
Antiguo 15/06/2004, 03:41
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Poner hyperlink dinamico en datagrid _-App Web-_ASP.NET

Hola!!
Estoy intentando realizar una cosilla y no la consigo.....
Es lo siguiente:
Tengo un datagrid que relleno con datos de una BD mediante un dataset. Hasta aqui todo perfecto, se rellena con los datos que quiero.
Ahora lo que pretendo es que al ir creandose los elementos de una columna, ItemDataBound, quiero que según un valor, el texto de esta cell(i) se convierta en un hyperenlace. No lo consigo..... supongo que será haciendolo mas o menos de esta forma: e.Item.Cells(1).Attributes.Add(......)
Pero no sé como culminarlo.

Por favor necesito ayuda!!
Gracias antes de nada!!!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #2 (permalink)  
Antiguo 15/06/2004, 04:00
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Te digo yo como lo hago en mi casa usando un DataList,supongo que con el Dataset lo haras mas o menos igual,sabes que te lo miraria pero es lo que tiene el no tener aqui el VS.NET.......
Bueno ahi va,yo lo que hago es dentro de
<asp:DataList id=DLCategorias style="Z-INDEX: 101; LEFT: 288px; POSITION: absolute; TOP: 24px" runat="server" BorderStyle="None" BorderColor="#E7E7FF" BorderWidth="1px" DataSource="<%# DSCategoriasPrincipal1 %>" BackColor="White" CellPadding="3" GridLines="Horizontal" DataMember="Categorias" RepeatDirection="Horizontal">
'Que es el Datalist llenandolo con el contenido del dataset
'añado esta linea
<ASP:Hyperlink runat="server" id="HyperLink2" Text='<%#DataBinder.Eval(Container.DataItem, "nombre") %>' NavigateUrl='<%# DataBinder.Eval(Container.DataItem, "nombre") & ".aspx" %>' />

Un saludo
  #3 (permalink)  
Antiguo 15/06/2004, 04:10
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Wenass, nop, creo que no me entendiste bien....
Quiero que "algunas" celdas de una columna en concreto sean hyperenlaces según un valor que evaluo en el evento MyDataGrid_ItemDataBound(....)...
Es decir, en este evento, hago una evaluación y según el valor que me resulte, hacer que esa celda, en la que evaluo ese valor, se "convierta" en hyperlink.
....
thnx por todo!
__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
  #4 (permalink)  
Antiguo 15/06/2004, 04:14
Avatar de SunDarK  
Fecha de Ingreso: diciembre-2003
Ubicación: Jerez de la Frontera
Mensajes: 1.193
Antigüedad: 20 años, 4 meses
Puntos: 8
Pues ni idea,no he llegado a tanto,pero vamos que lo que te he dicho no tiene que andar muy descaminado
  #5 (permalink)  
Antiguo 15/06/2004, 10:00
Avatar de luiscl  
Fecha de Ingreso: abril-2004
Ubicación: Zaragoza
Mensajes: 305
Antigüedad: 20 años
Puntos: 0
Hola!

He estado probando, y no he conseguido cambiar en tiempo de ejecución, si la columna debe ser un hiperlink o no. Lo que sí se me ocurre es que en el DataNavigateUrl le redirijas a una función de javascript

DataNavigateUrlFormatString="javascript:abrir('{0} ');"

Y dentro de la función 'abrir', pues que ahí evalues con un If. Si es lo que quieres, redireccionas a la página. Y si no lo es, pues no hacer nada.

No lo he probado, pero es lo único que se me ocurre.

Espero haberte orientado algo...
__________________
Pide lo que quieras...y luego paga por ello
  #6 (permalink)  
Antiguo 15/06/2004, 11:11
Avatar de GeRuNdIo  
Fecha de Ingreso: marzo-2004
Ubicación: Sanlúcar de Barrameda, Cádiz
Mensajes: 232
Antigüedad: 20 años, 1 mes
Puntos: 2
Hola luiscl!
Muchas gracias por probar y todo....
Tiene buena pinta lo que me posteas, pero acabo de encontrar la solución a lo de los hyperlinks, y el enlace a donde se ha de dirigir lo hago de otra forma.... Al menos le puede servir a otro de ayuda.

Ya que he encontrado como hacer lo de los hyperlinks, qué menos que contarlo:
Bien, en tiempo de diseño, en el datagrid, he tenido que crear las columnas, de tipo enlazadas y una de tipo botón seleccionar hyperlink.
Como los contenidos de mi datagrid van a variar según opciones (va a haber consultas diferentes), en el diseño de las columnas no he especificado el Tipo de Datos enlazado. Una vez "diseñadas" las columnas, en el evento datagrid_ItemDataBound(...) me he encargado de realizar esa comprobación que quería para ver si el valor de la columna de hyperlink sería o no un enlace, y si no iba a ser un hyperenlace, simplemente realizo esta asignación: e.Item.Cells(i).Text=e.Item.DataItem("Nombre del campo"), al realizar esta asignación, se pierde el hyperenlace y aparece solo texto en el datagrid (no me pregunteis por qué...).

Pues bien, para seguir llenando el datagrid, simplemente, según lo que se iba a mostrar, le asignaba en el ItemDataBound(...) , el campo correspondiente de la forma: e.Item.Cells(i).Text=e.Item.DataItem("Nombre del campo")

Y de esta forma, "a mano", he conseguido hacer que un mismo datagrid me sirva para contener diferentes datos de diferentes consultas y pueda controlar si en una columna en especial tenga o no hyperenlaces.

Saludos!!!

__________________
Una buena forma de sacar las castañas del fuego sin quemarse: LEE FOROSDELWEB..... :si:
------
F.P.R. MCAD .NET
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 23:38.