2010-01-12 2 views
2

ASP.Net에서 gridview 컨트롤을 만들려고 할 때 사용자가 Ctrl 키를 누를 때마다 다중 정렬을 수행합니다. 열 이름을 클릭하여 정렬하십시오. 문제는 Firefox를 사용할 때 Ctrl 키를 누른 상태에서 열 이름을 클릭하면 브라우저가 "javascript : __ doPostBack ('ctl00 $ ContentPla ...'링크를 새 탭에서 열려고 시도한다는 것입니다. 링크가 실제 링크하지 않는 한이 작업을 수행하지 않습니다. Firefox에서 gridview 헤더를 다시 열지 못하게하려면 Ctrl 키를 누른 채로 새 탭에서 포스트 백 링크를 클릭하십시오.

내가 새 탭에서 링크를 여는 파이어 폭스을 방지하고 정상적으로 다시 게시 페이지를 일으킬 수있는 방법이 있나요?

감사합니다.

답변

1

document.onKeyDown을 사용하여 Ctrl 키가 눌려지는 이벤트를 캡처해야합니다.

이벤트 처리기에서 'Ctrl'키 코드 17)을 다음과 같이 눌렀습니다.

function document_keyDown(e) { 
    var KeyID = (window.event) ? event.keyCode : e.keyCode; 
     if (KeyID == 17) { 
      ctrlDown = true; 
     } 
} 

여기에서 'ctrlDown'변수를 true로 설정합니다. 그런 다음

function document_keyUp(e) { 
    var KeyID = (window.event) ? event.keyCode : e.keyCode; 
    if (KeyID == 17) { 
     ctrlDown = false; 
    } 
} 

Ctrl 키를 클릭되었는지의 경우 열 요소의 클릭 이벤트에, 당신은 확인할 수 있습니다 : 다음 onKeyUp에 이벤트에 대한

, 당신은 정반대을 할 수

function columnElement_click() { 
    if (ctrlDown != undefined && ctrlDown == true) 
     alert("Ctrl + Click Received"); 
    return false; 
} 

열 클릭 처리기 이 거짓을 반환하는지 확인하십시오. 그렇지 않으면 브라우저가 코드를 실행하지만 링크의 'href'속성에서 주소로 이동합니다.

희망이 도움이됩니다.

(참조 : http://www.geekpedia.com/tutorial138_Get-key-press-event-using-JavaScript.html를)

+0

답장을 보내 주셔서 감사 많이. 나는 그것을 구현하려고 노력할 것이다. –

관련 문제