2010-12-07 3 views
1

나는 이것을 보면서 훑어 보았을 때 깨끗한 해결책을 찾지 못했습니다. 내 동료는 꽤 더러운 해결책을 찾았지 만 마스터 페이지에 놓았을 때 링크 참조의 솔루션이 작동하지 않는 이유는 모르겠다. 기본적으로 텍스트 상자와 링크 버튼이있는 마스터 페이지가 있는데, Enter 키를 누르면 하위 페이지의 기본 버튼이 대신 호출됩니다.기본 LinkButton on 마스터 페이지 입력

  1. http://weblogs.asp.net/jeff/archive/2005/07/26/420618.aspx
  2. set linkbutton as default button for asp:panel in asp.net (아마드의 솔루션)

주십시오에 어떤 통찰력? 고마워요 :)

나는 내일 일할 때 더러운 해결책을 게시 할 것입니다.

편집 : 여기에 더러운이야 (내가 생각하는) 솔루션 :

string id = ctlToClick.UniqueID; 
string someJavascript = //see below 
EmailTextBox.Attributes.Add("OnKeyPress", someJavascript); 

자바 스크립트는 (StackOverflow의 더 나은를 포맷 할 수 있도록 여기에 위치) :

javascript:if (window.event){ 
    if(parseInt(window.event.keyCode) == 13){ 
    WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions('" + id + "', '', true, 'Login', '', false, true)); 
    return false; 
    } 
} 

는이 정말 유일한 해결책인가 이?

+0

Enter 키를 눌렀을 때 원하는 것이 무엇입니까? 연결된 페이지로 리디렉션 하시겠습니까? –

답변

1

defaultButton 속성을 설정해 보았습니까? lnkNextPageLinkButton 컨트롤의 ID입니다

<form id="Form1" 
     defaultbutton="lnkNextPage" 
     runat="server"> 

.

+0

그래, 나는 그것을 시도했다. 양식은 asp : textbox와 asp : linkbutton으로 구성되며, defaultbutton 속성은 linkbutton의 id로 설정됩니다. – David

+0

" 'Form1'의 DefaultButton은 IButtonControl 유형의 컨트롤 ID 여야합니다." – thatsalok

0

나는 탭/컨트롤 키를 제어하는 ​​간단한 자바 스크립트가 필요하다고 생각한다. 기본 버튼 솔루션 작업을 수행 할 수있는 방법이 없기 전에이 문제에 착수했습니다.

아이디어는 간단합니다 - 입력란에 입력 한 각 키를 확인하십시오. presed 키가 enter 또는 tab 인 경우 jquery 또는 document.GetElementById ('id')를 사용하여 버튼을 찾고 버튼에서 click 이벤트를 호출합니다.

a) : 양식이 하나뿐이므로 b) : 실제로 어떤 단추가 클릭되는지 제어 할 수 있도록하려는 다른 텍스트 상자의 경우 (탭/들어가다).

간단한 자바 스크립트 파일이이를 해결합니다.

<bleepzter/>