Jump to content

gridview com hyperlinks


AMB
 Share

Recommended Posts

Boa tarde

É o seguinte eu tenho uma  grid em que cada linha da grid tem um hyperlink, pois cada um corresponde a um produto diferente, e queria que ao clicar ele me reencaminha-se para a pagina correcta. Ou seja queria saber como consigo guardar o nº do produto para conseguir enviar para a pagina certa.

Obrigada

Link to comment
Share on other sites

Olá,

Desculpa, não me expliquei bem, eu estou a utilzar um hyperlink ou um linkbutton no templatefield pois eu por cada linha da grid possuo 4 hyperlinks numa celula da grind e só por templatefield é que consigo encaixar os 4. E assim não consigo ter a propriedades que falast.

Obrigada

Link to comment
Share on other sites

Bem, se tens um templatefield, podes preencher o URL do LinkButton ou HyperLink do lado do C# ou VB.Net (depende do que usares).

Para tal, precisas de subscrever o evento RowDataBound da GridView, utilizar o FindControl para pesquisar o teu LinkButton ou HyperLink e atribuir o URL correcto.

Pesquisa sobre isso e depois diz coisas 👍

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

Bom dia

Acho que estou a fazer algo errado pois não estou a conseguir...o codigo que tenho é o seguinte

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        Dim i As Integer
        For i = 0 To GridView1.Rows.Count - 1
            Dim h As GridViewRow = GridView1.Rows(i)
            Dim r As Label = CType(h.FindControl("Label1"), Label)
            Dim s As LinkButton = CType(h.FindControl("LinkButton1"), LinkButton)


            TextBox1.Text = r.ToString
        Next
        ' Dim produtoid As Integer = Convert.ToInt32(GridView1.DataKeys(0)("ID").ToString())
        'TextBox1.Text = produtoid.ToString
    End Sub

mas quando clico no linkbutton não faz nada...  :down:

Link to comment
Share on other sites

Olá,

Pois isso não está bem...

Deverá ser algo do género (não testei e VB.Net não é a minha especialdiade):

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
' Apenas considera Rows com Dados!
If e.Row.RowType != DataControlRowType.DataRow
Return

' Aqui obténs o teu LinkButton
Dim s As LinkButton = CType(e.Row.FindControl("LinkButton1"), LinkButton)

' o passo seguinte é preencheres o correctamente o teu URL do Linkbutton
    End Sub

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

Acho que o meu problema está mesmo no passo seguinte....

a pagina que pretende aceder vai ter uma outra grid que vai ser preenchida dependendo do id que vai no linkbutton...

cada link envia para um grid diferente...

pegando no codigo que me enviaste...seria algo assim certo???

mas nao faz nd...

Desde ja obrigada

  Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        ' Apenas considera Rows com Dados!
        If e.Row.RowType <> DataControlRowType.DataRow Then
            Return

            ' Aqui obténs o teu LinkButton
            Dim s As LinkButton = CType(e.Row.FindControl("LinkButton1"), LinkButton)
            Response.Redirect("cqtc.aspx?id={0}")
            ' o passo seguinte é preencheres o correctamente o teu URL do Linkbutton
        End If
    End Sub
Link to comment
Share on other sites

Aproveitando o teu código...

  Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        ' Apenas considera Rows com Dados!
        If e.Row.RowType <> DataControlRowType.DataRow Then
            Return

            ' Aqui obténs o teu LinkButton
            Dim s As LinkButton = CType(e.Row.FindControl("LinkButton1"), LinkButton)
            s.PostBackUrl = "cqtc.aspx?id=" & id
            ' Aqui tens de preencher o ID... Podes obter o ID através de: e.Row.DataItem
        End If
    End Sub

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Link to comment
Share on other sites

Algo assim???

Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As GridViewRowEventArgs)
        ' Apenas considera Rows com Dados!
        If e.Row.RowType <> DataControlRowType.DataRow Then
            Return

            ' Aqui obténs o teu LinkButton
            Dim s As LinkButton = CType(e.Row.FindControl("LinkButton4"), LinkButton)
            s.PostBackUrl = "cqtc.aspx?id="  + DataBinder.Eval(e.Row.DataItem, "id")
            
        End If

continua na mesma, nem sai da pagina...

Link to comment
Share on other sites

Não há maneira de ao clicar no linkbutton escrever numa textbox o valor que esta na coluna 2 correspondente à linha onde se situa o link button???

Assim penso que seria mais fácil, até porque vou precisar deste código na mesma....

já tente com

Protected Sub GridView1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles GridView1.SelectedIndexChanged
        TextBox1.Text = GridView1.Rows(GridView1.SelectedIndex).Cells(1).Text

    End Sub

mas não está a escrever nada

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.