AMB Posted March 9, 2012 Report Share Posted March 9, 2012 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 More sharing options...
Rechousa Posted March 9, 2012 Report Share Posted March 9, 2012 Olá, Deves precisar de usar um HyperLinkField com as propriedades DataNavigateUrlFields e DatanavigateUrlFormatString. Vê exemplo aqui. Espero ter ajudado. Pedro Martins Sharing is Knowledge! http://www.linkedin.com/in/rechousa Link to comment Share on other sites More sharing options...
AMB Posted March 9, 2012 Author Report Share Posted March 9, 2012 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 More sharing options...
Rechousa Posted March 9, 2012 Report Share Posted March 9, 2012 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 More sharing options...
AMB Posted March 12, 2012 Author Report Share Posted March 12, 2012 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 More sharing options...
Rechousa Posted March 12, 2012 Report Share Posted March 12, 2012 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 More sharing options...
AMB Posted March 12, 2012 Author Report Share Posted March 12, 2012 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 More sharing options...
ricasss Posted March 12, 2012 Report Share Posted March 12, 2012 No passo seguinte experimenta assim: s.OnClientClick = "cqtc.aspx?id={0}" Link to comment Share on other sites More sharing options...
AMB Posted March 12, 2012 Author Report Share Posted March 12, 2012 Clicando no linkbutton fico exactamente na mesma página, não faz nd :down: Link to comment Share on other sites More sharing options...
ricasss Posted March 12, 2012 Report Share Posted March 12, 2012 e assim? CType(e.Row.FindControl("LinkButton1"), LinkButton).onClientClick = "cqtc.aspx?id={0}" Link to comment Share on other sites More sharing options...
AMB Posted March 12, 2012 Author Report Share Posted March 12, 2012 Tá dificil...continua igual pa ele é como se não tivesse nada... Link to comment Share on other sites More sharing options...
Rechousa Posted March 13, 2012 Report Share Posted March 13, 2012 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 More sharing options...
AMB Posted March 13, 2012 Author Report Share Posted March 13, 2012 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 More sharing options...
AMB Posted March 13, 2012 Author Report Share Posted March 13, 2012 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now