Duplo click no gridview
05/05/2008
0
iniciei minha dúvida nesse tópico
[url]http://forum.devmedia.com.br/viewtopic.php?t=88773&start=0&postdays=0&postorder=asc&highlight=[/url]
Então agora estou com dúvida se existe uma maneira de realizar oque pretendo.
Exibo os dados em um grid e em vez de utilizar o ´Select´ gostaria de dar um duplo click e abril o DetailsView. Teria como realizar isso com o gridview ? Se não. teria possibilidade com outro componente ?
Obrigada
Patricia
Jmlpod
Posts
05/05/2008
Ricardo Silva
tem como fazer isso sim...
Via JavaScript, ou no evento IPostBackEventHandler
se vc naum conhecer alguma dessas duas tecnicas fica complicado de esplicar....
me diga qual vc tem mais familiaridade ai eu te esplico....
se por acasso for o IPostBackEventHandler, explicarei em C#
05/05/2008
Jmlpod
bom como sou iniciante nesse mundo da net ..rs.. não tenho familiaridade com nada ..rs.. Mas estou estudando ..
Se puder me dar um exemplo, me indicar um tutorial ou algum link na net que tenha algo a respeito.. te agradeço.
Bom mesmo se vc não tiver um link para me indicar, se puder postar algo para eu tentar ir atrás de como fazer.. já ajuda pois não tenho noção.
Obrigada
Patricia
06/05/2008
Jmlpod
alguem poderia me dar uma dica de como fazer ?
obrigada
Patricia
06/05/2008
Ricardo Silva
no souce da pagina acrecente este javaScript:
<script type="text/javascript"> // Variaveis que armazenam a linha atual do Grid. // armazena temporariamente a Cor anterior da linha atual. var currentRowId = 0; var _oldColor; // Armazena a cor anterior da linha // Muda a cor da Linha atual. function SetNewColor(source){ _oldColor = source.style.backgroundColor; source.style.backgroundColor = ´#0054e3´; source.style.color= ´White´; } // Volta a cor Anterior à linha atual. function SetOldColor(source){ source.style.backgroundColor = _oldColor; } /* Verifica o KeyCode da tecla preciona * 40- seta pra cima * 38- seta pra baixo * 13- Tecla Enter * 46- Tecla Delete */ function SelectRow(){ if (event.keyCode == 40) MarkRow(currentRowId+1); else if (event.keyCode == 38) MarkRow(currentRowId-1); if (event.keyCode == 13) openModalChildId(_pagina, _option); } // Verifica se a linha é diferente de Nula // 1º volta as cores Originais da Linha anterior // 2º pinta a linha atual para selecionada function MarkRow(rowId){ if (document.getElementById(rowId) == null) return; if (document.getElementById(currentRowId) != null){ document.getElementById(currentRowId).style.backgroundColor = _oldColor; document.getElementById(currentRowId).style.color= ´Black´; } currentRowId = rowId; SetNewColor(document.getElementById(rowId)); } // função do clique do Enter function Enter(linha){ alert("Tecla Entre Pressionado na linha " + linha); } // função do duplo clique function duploClique(linha){ alert("Tecla Entre Pressionado na linha " + document.getElementById(rowId).value); } </script>
No Code BeHide, em RowDataBound:
private int _i = 0; protected void gridAlineas_RowDataBound(object sender, GridViewRowEventArgs e) { if(e.Row.RowType == DataControlRowType.DataRow && (e.Row.RowState == DataControlRowState.Alternate || e.Row.RowState == DataControlRowState.Normal)) { e.Row.Attributes.Add("onMouseOver", "this.style.cursor=´hand´;"); e.Row.Attributes.Add("id", _i.ToString()); e.Row.Attributes.Add("value", e.Row.Cells[0].Text); e.Row.Attributes.Add("onKeyDown", "SelectRow();"; e.Row.Attributes.Add("onClick", "MarkRow(" + _i.ToString() + ");"); e.Row.Attributes.Add("onDblClick", "duploClique();"); _i++; } }
no Principio é um pouco estranhuuu, mas quando começa a pegar o jeto fica muito Loku.. te aconcelho em aprofundar em javaScrit se pretende trabalhar com Web....
Na duvida soh Posta
06/05/2008
Ricardo Silva
Logicamente que vc tera que adaptar para seu sistema
https://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5478
Clique aqui para fazer login e interagir na Comunidade :)