Usuário com melhor resposta
Problemas RowDataBound com hyperlink no chrome

Pergunta
-
Tenho um gridview onde tenho duas colunas onde tenho um hyperlink onde exibo dois relatórios "resumo" e "detalhado" para cada linha da gridview. Está com um comportamento estranho pois só funciona no IE no Chrome se clico a primeira vez em qualquer linha ele abre o pop-up com o relatório, mais depois a página fica travada, nenhum link funciona nem mesmo o menu, estranho porque no IE funciona perfeito, descobri esse erro pq um usuário reclamou.
No aspx criei o gridview e dentro dele criei dois templatefield e dentro criei um itemtemplate onde tenho um asp:hyperlink
No codebehind tenho isso :
protected void Gv_Resumo_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.EmptyDataRow) { int rowindex = e.Row.DataItemIndex; string nmarqu = Convert.ToString(Gv_Resumo.DataKeys[rowindex].Values["ext_periodo"]); string urlresumo = "Extratoresumido.aspx?data=" + nmarqu.Trim(); HyperLink resumo = new HyperLink(); resumo = (HyperLink)e.Row.FindControl("LkbResumo"); resumo.NavigateUrl = "#"; resumo.Attributes.Add("OnClick", "window.open('" + urlresumo + "','PopupWindow','scrollbars=1,width=800,height=400')"); resumo.Text = "Resumo"; string url = "Extratoresultado.aspx?data=" + nmarqu.Trim(); HyperLink detalhe = new HyperLink(); detalhe = (HyperLink)e.Row.FindControl("LkbDetalhe"); detalhe.NavigateUrl = "#"; detalhe.Attributes.Add("OnClick", "window.open('" + url + "','PopupWindow','scrollbars=1,width=800,height=400')"); detalhe.Text = "Detalhe"; } }
Minha dúvida é porque só dá erro no chrome ?
Junior
Respostas
-
A solução para o problema foi tirar o sel.print() do load da página e colocar um botão imprimir.
Junior
- Marcado como Resposta Junior_luiz sexta-feira, 20 de junho de 2014 19:16
Todas as Respostas
-
Junior, boa noite.
Lendo seu código não encontrei nada que possa dar um comportamento estranho como esse.
Mas já que estou aqui, vou ao menos ajudar em uma outra coisa:
Mude as linhas:
resumo.NavigateUrl = "#";
Para:
resumo.NavigateUrl = "javascript:void(0)"
Com relação ao problema em si, por acaso aparece alguma mensagem no console do Chrome ?
Abraços !
Diego Murakami
- MCP, MS, MCSD
* Por favor "Marcar como Resposta" caso esta for útil para sua dúvida.- Sugerido como Resposta Ricardo Barbosa Cortes quinta-feira, 19 de junho de 2014 13:24
- Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 19 de junho de 2014 17:42
- Não Marcado como Resposta Junior_luiz sexta-feira, 20 de junho de 2014 12:10
-
-
Junior, bom dia.
Você chegou a fazer as alterações que eu postei ?
Abraços !
Diego Murakami
- MCP, MS, MCSD
* Por favor "Marcar como Resposta" caso esta for útil para sua dúvida. -
Diego olhando no console o comando onclick fica assim :
<a id="MainContent_Gv_Resumo_LkbResumo_0" OnClick="window.open('Extratoresumido.aspx?data=02/06/2014 A 02/06/2014','PopupWindow','scrollbars=1,width=800,height=400')" href="javascript:void(0)">Resumo</a>
Notei que em todo meu site links dentro de um gridview no chrome só abre o primeiro link clicado, qdo se fecha o pop-up a página do site fica congelada até mesmo o link que tenho para dar logout não funciona mais.
Junior
-
Diego acho que achei o problema tenho que achar agora uma solução, vamos lá na página "ExtratoResumo.aspx" no <body> tenho o seguinte comando onload="self.print();"
Caso o usuário simplesmente feche o pop-up sem cancelar a impressão ou imprimir ai a página principal fica congelada, caso contrário fica normal.
Tenho que achar a solução para o chrome.
Junior
-
Enquanto você não fecha o pop-up, os links funcionam normalmente ?
Se for isso, então existe algum script no pop-up que está fazendo algo que causa o comportamento.
Abraços !
Diego Murakami
- MCP, MS, MCSD
* Por favor "Marcar como Resposta" caso esta for útil para sua dúvida. -
Não Diego o problema não está fechar o pop-up e sim imprimir ou cancelar a impressão, pelo que andei pesquisando caso isso não seja feito o chrome ativa o bloqueador de pop-up e assim não abre mais nenhum, mais caso vc cancele ou imprima o relatório o comportamento fica normal.
O que eu estava fazendo era exatamente isso, qdo ele abre o pop-up simplesmente eu o fecho, ai congela a página principal.
Mais qdo abre o pop-up ele chama a impressora, se eu cancelar a impressão ou imprimir o relatório tudo fica normal.
Talvés a solução seja tirar o self.print do load da página e colocar um botão para imprimir somente o relatório.
Junior
-
A solução para o problema foi tirar o sel.print() do load da página e colocar um botão imprimir.
Junior
- Marcado como Resposta Junior_luiz sexta-feira, 20 de junho de 2014 19:16