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

Hyperlink en DataGrid de ASP .Net(HYPERLINK COLUMN)

Estas en el tema de Hyperlink en DataGrid de ASP .Net(HYPERLINK COLUMN) en el foro de .NET en Foros del Web. Holas buenas tardes a todos, les explico mi problema tengo una grilla en mi webform los cuales en sus columnas tienen Hyperlinks, dado que yo ...
  #1 (permalink)  
Antiguo 21/02/2005, 09:10
Avatar de WilliamsPeru  
Fecha de Ingreso: febrero-2005
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
Pregunta Hyperlink en DataGrid de ASP .Net(HYPERLINK COLUMN)

Holas buenas tardes a todos, les explico mi problema tengo una grilla en mi webform los cuales en sus columnas tienen Hyperlinks, dado que yo al querer darle click a cada valor del datagrid este se llene automaticamente en un textbox

por lo que mi idea principal era que cada vez que dea click a los hyperlinks se invoque a una funcion java script que envie como parametro al dato que seleccione y me llene mi respectivo textbox


pues bien no se como invocar a la funcion java script desde este hyperlink

Bueno se que en las propiedades de mi datagrid en

text field : recibo el parametro de la base de datos con la que llenare la columna de mi grilla y cullos valores estan ubicados en Hyperlinks

URL_Field : es donde se cargara esta como dato de envio del Hyperlink

URL_Format String : es donde invocaria a la funcion java script... dado que esta yo lo utiliso para invocar a otro web form de la sgte manera

javascript:var w =window.open('Detail.aspx?ID={0}',null,'width=500, height=400,top=100,left=150,location=no,Scrollbars =yes,Status=yes ')

ojo ! pero ahora yo quiero invocar a una funcion java script mandandole parametro


si alguien me apuede ayudar Gracias :ar

Última edición por WilliamsPeru; 21/02/2005 a las 09:13
  #2 (permalink)  
Antiguo 21/02/2005, 09:23
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Porque no te apoyas del itemdatabound de tu grid para agregarle un attributo y asociarlo a javascript.

Algo como ésto:

Cita:
Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
If e.Item.ItemType = ListItemType.AlternatingItem Or _
e.Item.ItemType = ListItemType.Item Then
Dim hyper As HyperLink = CType(e.Item.FindControl("hyperLink1"), HyperLink)
hyper.Attributes.Add("onclick", "MiFuncion('" & parametro1 & "')")
End If
End Sub
Y en tu html creas la funcion que recibirá el parámetro:

Cita:
<script language=javascript>
function MiFuncion(param1)
{
//lo que quiera
}
</script>
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 21/02/2005, 09:53
Avatar de WilliamsPeru  
Fecha de Ingreso: febrero-2005
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
hola Amigo Gracias por tu respuesta lo probare ... 1 consulta mas con respecto a la funcion java script que are.

se que la función java script lo realizare en la parte de html de mi web form

<script language="JavaScript" type="text/JavaScript">
<!--
function MiFuncion(){

}

//-->
</script>

pero se poco de java script en este caso lo que quiero es llenar un texbox y que mi funcion reciba un parametro de tipo string como aria para llenar este texbox1

gracias de ante mano
  #4 (permalink)  
Antiguo 21/02/2005, 11:55
Avatar de WilliamsPeru  
Fecha de Ingreso: febrero-2005
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
hola rootk

mira use lo que dices y me salio el siguiente error




Cita:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.

Source Error:


Line 108: e.Item.ItemType = ListItemType.Item Then
Line 109: Dim hyper As HyperLink = CType(e.Item.FindControl("hyperLink1"), HyperLink)
Line 110: hyper.Attributes.Add("onclick", txtFecha.Text = "holass")
Line 111: End If
Line 112:
espero que me puedas o puedan ayudar

Nota : si alguien logro poder invocar una funcion java mediante el Hyperlink Colum seria fantastico
  #5 (permalink)  
Antiguo 21/02/2005, 12:32
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
podrías colocar el código html de tu datagrid..??
  #6 (permalink)  
Antiguo 21/02/2005, 13:04
Avatar de WilliamsPeru  
Fecha de Ingreso: febrero-2005
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
ok este es mi html

este es el html cuando le pongo columnas hyperlink al datagrid

Cita:
<asp:datagrid id="dgLista" runat="server" Width="381px" AutoGenerateColumns="False" AllowSorting="True" BorderWidth="1px" CellPadding="2" BorderColor="#CCCCCC" Height="25px" CssClass="Grid">
<SelectedItemStyle CssClass="GridSelect"></SelectedItemStyle>
<AlternatingItemStyle CssClass="GridAlterna"></AlternatingItemStyle>
<ItemStyle CssClass="GridData"></ItemStyle>
<HeaderStyle CssClass="GridHeader"></HeaderStyle>
<Columns>
<asp:HyperLinkColumn DataNavigateUrlField="lunes" DataTextField="lunes" HeaderText="Lunes"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="martes" DataTextField="martes" HeaderText="Martes"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="miercoles" DataTextField="miercoles" HeaderText="Miercoles"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="jueves" DataTextField="jueves" HeaderText="Jueves"></asp:HyperLinkColumn>
<asp:HyperLinkColumn Visible="False" DataNavigateUrlField="viernes" DataTextField="viernes" HeaderText="Viernes"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="sabado" DataTextField="sabado" HeaderText="Sabado"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="domingo" DataTextField="domingo" HeaderText="Domingo"></asp:HyperLinkColumn>
<asp:BoundColumn Visible="False" DataField="ELunes"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EMartes"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EMiercoles"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EJueves"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EViernes"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="ESabado"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EDomingo"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
</asp:datagrid></TD>
pero para la aplicacion de tu respuesta cree una grilla normal

Cita:
<asp:datagrid id="dgLista" runat="server" Width="381px" AutoGenerateColumns="False" AllowSorting="True" BorderWidth="1px" CellPadding="2" BorderColor="#CCCCCC" Height="25px" CssClass="Grid">
<SelectedItemStyle CssClass="GridSelect"></SelectedItemStyle>
<AlternatingItemStyle CssClass="GridAlterna"></AlternatingItemStyle>
<ItemStyle CssClass="GridData"></ItemStyle>
<HeaderStyle CssClass="GridHeader"></HeaderStyle>
<Columns>
<asp:BoundColumn Visible="False" DataField="ELunes"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EMartes"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EMiercoles"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EJueves"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EViernes"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="ESabado"></asp:BoundColumn>
<asp:BoundColumn Visible="False" DataField="EDomingo"></asp:BoundColumn>
<asp:BoundColumn DataField="Lunes" HeaderText="Lunes"></asp:BoundColumn>
<asp:BoundColumn DataField="Martes" HeaderText="Martes"></asp:BoundColumn>
</Columns>
<PagerStyle HorizontalAlign="Center" ForeColor="Black" BackColor="#999999" Mode="NumericPages"></PagerStyle>
</asp:datagrid></TD>
aqui esta lo que pidiste amigo gracias de ante mano =)

Última edición por WilliamsPeru; 21/02/2005 a las 13:05
  #7 (permalink)  
Antiguo 22/02/2005, 09:19
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
por lo que veo estas usando hyperLinnkCulumns, y para poderle asignar atributos especificos tienes que cambiar tu hyperlinkcolumns por template columns.

Es decir cambiar ésto:

Cita:
<asp:HyperLinkColumn DataNavigateUrlField="lunes" DataTextField="lunes" HeaderText="Lunes"></asp:HyperLinkColumn>
<asp:HyperLinkColumn DataNavigateUrlField="martes" DataTextField="martes" HeaderText="Martes"></asp:HyperLinkColumn>
Por algo como ésto:

Cita:
<asp:TemplateColumn HeaderText="Lunes">
<ItemTemplate>
<asp:HyperLink id="hyperLink1" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.lunes") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.lunes") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>

<asp:TemplateColumn HeaderText="Martes">
<ItemTemplate>
<asp:HyperLink id="hyperLink2" runat="server" Text='<%# DataBinder.Eval(Container, "DataItem.martes") %>' NavigateUrl='<%# DataBinder.Eval(Container, "DataItem.martes") %>'>
</asp:HyperLink>
</ItemTemplate>
</asp:TemplateColumn>
...
...
Una vez hecho eso puedes ya asignarle el evento javascript que quieras a través del ItemDataBound

Y podría ser así:

Cita:
Private Sub dgLista_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles dgLista.ItemDataBound
If e.Item.ItemType = ListItemType.AlternatingItem Or _
e.Item.ItemType = ListItemType.Item Then
Dim hyper As HyperLink = CType(e.Item.FindControl("hyperLink1"), HyperLink)
hyper.Attributes.Add("onclick", "MiFuncion();")
End If

End Sub

Y con ello el hyperLink uno ya tendrá asociado una funcion javascript determinada, solo faltaría que le pases los parámetros que necesites.

Creo que es un ejemplo a mi parecer bastante claro, si de plano, no lo entiendes bien, te recomiendo que te des una vuelta por las faq´s para que conozcas de formas mas precisa el datagrid.

Salu2
  #8 (permalink)  
Antiguo 22/02/2005, 15:22
Avatar de WilliamsPeru  
Fecha de Ingreso: febrero-2005
Mensajes: 15
Antigüedad: 19 años, 3 meses
Puntos: 0
yeaaa ;)

Buena solucion Amigo, evite usar los Hyperlink colum y si funciona lo que me diste

Gracias por tu ayuda
De todas maneras me quiero quitar el clavo del hyerlink colum si lo encuentro lo publico
ahora me pongo a revisar algo de java script


P.D : EXELENTE FORO ... soy nuevo y ya aprendi mucho aqui!!!!!! graciassss

Última edición por WilliamsPeru; 22/02/2005 a las 15:44
  #9 (permalink)  
Antiguo 22/02/2005, 15:28
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Me da gusto que te haya funcionado

P.D.- Nada que ver con el tema jeje, pero para que no cueste tanto trabajo leer los post no uses tantos fonts, solo resalta la parte que sea importante

Porque se ve medio rario ver tantos colores y fonts... jaja

See ya friend
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 22:05.