ASPX TextBox : 리턴에서 메소드를 실행합니다
문제
제출 버튼이없는 검색 창이 있습니다. Enter를 누른 다음 메소드를 실행할 수 있어야합니다. 어떻게해야합니까?
해결책
CSS로 이와 같은 간단한 일을 할 수도 있습니다.
<asp:Panel DefaultButton="myButton" runat="server">
<asp:TextBox ID="myTextBox" runat="server" />
<asp:Button ID="myButton" runat="server" onclick="myButton_Click" style="display: none; " />
</asp:Panel>
패널은 구현 및 주변 컨트롤에 따라 필요하거나 필요하지 않을 수도 있지만, 이것은 작동하며 나에게 포스트 백을합니다.
다른 팁
페이지에 숨겨진 버튼을 추가하고 해당 버튼의 클릭 이벤트에 메소드를 연결할 수 있습니다. 그런 다음 작은 JavaScript를 추가하여 TextBox에서 Enter를 누르면 해당 버튼의 포스트 백 작업을 트리거합니다.
this.myTextBox.Attributes.Add(
"onkeydown",
"return keyDownHandler(13, 'javascript:"
+ this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27")
+ "', event);");
(하드 코딩 된 13을 교체 할 수도 있습니다 Windows.forms.keys. 엔터, 읽기가 더 쉬운 버전을 선호한다면.)
KeyDownHandler가 다음과 같은 JavaScript 기능 인 경우.
function keyDownHandler(iKeyCode, sFunc, e) {
if (e == null) {
e = window.event;
}
if (e.keyCode == iKeyCode) {
eval(unescape(sFunc)); return false;
}
}
이것은 구현을 기반으로합니다 dotnetnuke'에스 ClientApi 웹 유틸리티.
TextChanged 이벤트를 사용하고 AutoPostback 속성을 True로 설정하십시오.
제휴하지 않습니다 StackOverflow