Array
(
)

Duplo click no gridview

Jmlpod
   - 05 mai 2008

Boa Tarde

iniciei minha dúvida nesse tópico

http://forum.devmedia.com.br/viewtopic.php?t=88773&;start=0&postdays=0&postorder=asc&highlight=

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

Ricardo Silva
   - 05 mai 2008

Ola Patricia...

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#

Jmlpod
   - 05 mai 2008

Boa Tarde RicaJedidia

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

Jmlpod
   - 06 mai 2008

Bom dia

alguem poderia me dar uma dica de como fazer ?

obrigada
Patricia

Ricardo Silva
   - 06 mai 2008

Vamos lah...

no souce da pagina acrecente este javaScript:
#Código

<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:
#Código
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

Ricardo Silva
   - 06 mai 2008

da uma olhada aki....
Logicamente que vc tera que adaptar para seu sistema
http://www.devmedia.com.br/articles/viewcomp_forprint.asp?comp=5478