Pergunta

Eu tenho uma caixa de busca que não tem um botão de envio, eu preciso ser capaz de bater entrar e, em seguida, executar um método, como posso fazer isso?

Foi útil?

Solução

Você também pode fazer algo simples como isso com 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>

O painel pode ou não ser necessária, dependendo da sua implementação e controles ao redor, mas isso funciona e faz um postback para mim.

Outras dicas

Você pode adicionar um botão escondido para a página e fio-up seu método de evento de clique que do botão. Em seguida, adicione um pouco de javascript para gatilho que ação postback do botão quando você pressionar enter dentro da caixa de texto.

this.myTextBox.Attributes.Add(
    "onkeydown", 
    "return keyDownHandler(13, 'javascript:" 
     + this.Page.ClientScript.GetPostBackEventReference(this.myButton, string.Empty).Replace("'", "%27") 
     + "', event);");

(Você também pode substituir o hard-coded 13 com Windows.Forms.Keys .Enter, se você preferir mais fácil um para ler a versão.)

Onde keyDownHandler é uma função JavaScript como este:

function keyDownHandler(iKeyCode, sFunc, e) { 
    if (e == null) { 
        e = window.event; 
    } 
    if (e.keyCode == iKeyCode) { 
        eval(unescape(sFunc)); return false; 
    } 
}

Note, este é baseado na implementação de DotNetNuke 's ClientAPI utilitário web .

Use o evento TextChanged, e defina a propriedade AutoPostBack para true.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top