none
DataGrid & HyperLinkColumn RRS feed

  • Pergunta

  • Fala Pessoal!

    Tenho uma coluna no meu DataGrid que é do tipo HyperLink, nela consigo gerar um link, que coloca no mesmo, o valor de uma determinada coluna do dataset que popula o grid.
    Só para esclarecer, digamos que meu dataset tenha as colunas a,b e c.
    A primeira coluna do meu datagrid gera um link mais ou menos assim: http://meusite?id=X, onde, no lugar deste 'X', eu faço ele variar pelo valor de b, para cada linha.

    A questão, como fazer para o link poder substituir dinâmicamente mais de uma coluna do dataset?
    http://meusite?id=X&id2=Y?

    Onde X fosse a coluna b, e Y fosse a coluna c do meu DataSet.

    Não sei se fui claro, em todo caso, comentários e sugestões pertinentes serão bem vindas!

    Falou!!

     

    segunda-feira, 26 de junho de 2006 20:38

Respostas

  • Bão Bahia,

    Seguinte,

    Você pode utilizar o evento ItemDataBound do DataGrid.

    De forma que pode configurar normalmente seu GRID com seus campos bound.

    No ItemDataBound você pode fazer assim:

    Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

    Dim link1 As HyperLink = DirectCast(e.Item.FindControl("HyperLink1"), HyperLink)
    link1.NavigateUrl = "http://meusite?id=" & e.Item.DataItem("colunaB") & "&id2=" & e.Item.DataItem("colunaC")

    End If
    End Sub

     

     

    Mais ou menos isso.

    Espero ter ajudado!

    segunda-feira, 26 de junho de 2006 21:39

Todas as Respostas

  • Bão Bahia,

    Seguinte,

    Você pode utilizar o evento ItemDataBound do DataGrid.

    De forma que pode configurar normalmente seu GRID com seus campos bound.

    No ItemDataBound você pode fazer assim:

    Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound

    If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then

    Dim link1 As HyperLink = DirectCast(e.Item.FindControl("HyperLink1"), HyperLink)
    link1.NavigateUrl = "http://meusite?id=" & e.Item.DataItem("colunaB") & "&id2=" & e.Item.DataItem("colunaC")

    End If
    End Sub

     

     

    Mais ou menos isso.

    Espero ter ajudado!

    segunda-feira, 26 de junho de 2006 21:39
  • Blz Fabiano!

    Boa dica.

    Acho que, mesmo meus controles sendo gerados dinâmicamente, inclusive o grid, dá pra implementar isso aí.

    Vou testar e posto aqui.

    Valeu.

     

    segunda-feira, 26 de junho de 2006 22:00