문제

제출 버튼이없는 검색 창이 있습니다. 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로 설정하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top