如何使ASP.NET TextBox在AJAX UpdatePanel中触发onTextChanged事件?

10 .net ajax textbox

我试图让一个textBox在每次进行击键时触发onTextChanged事件,而不是仅在它失去焦点时才触发.我认为添加AsyncPostBackTrigger可以做到这一点,但它仍然无法正常工作.我正在努力做甚么可能吗?代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Items.aspx.cs" MasterPageFile="~/MMPAdmin.Master" Inherits="MMPAdmin.Items" %>
<asp:Content ID="content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<asp:ScriptManager ID="sm_Main" runat="server" />
    <div style="left:10px;position:relative;width:100%;overflow:hidden">
        <asp:UpdatePanel ID="up_SearchText" runat="server">
            <Triggers>
                 <asp:AsyncPostBackTrigger ControlID="tb_Search" EventName="TextChanged" />
            </Triggers>
            <ContentTemplate>
                <div style="position:relative;float:left">
                    <b style="font-size:xx-large">Items</b>(<a href="Item.aspx">Add New</a>)
                </div>
                <div style="right:25px;position:absolute; top:30px">
                    Search: <asp:TextBox ID="tb_Search" runat="server" Width="200" OnTextChanged="UpdateGrid" AutoPostBack="true" />
                </div>
                <br />
                <div>
                    <asp:GridView runat="server" AutoGenerateColumns="true" ID="gv_Items" AutoGenerateEditButton="true" AutoGenerateDeleteButton="true" />
                </div>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
</asp:Content>
Run Code Online (Sandbox Code Playgroud)

sme*_*cer 13

  • 使用javascript引发_postback()时,需要为文本框控件调用该函数onkeyup.
  • 但是,由于您的文本框位于更新面板内,因此每次用户按键时文本框都会重新呈现,从而导致光标失去焦点.
  • 除非您将文本框从更新面板中取出,否则这将无法使用.这可能对你有用,因为更新面板往往有点慢,你可能仍然有可用性问题. - 我建议使用自动完成组件.

PS:asp.net控件工具包中有一个,或者你可以使用我发现的jquery自动完成插件更好一点.

  • 只是添加到@ smercer的响应:onTextChange事件仅在回发时触发 - 而不是在更新文本框时触发.OP正在寻找的是更接近JavaScript onKeyPress事件.@Smercer是正确的,你最好的选择是提到的组件之一. (2认同)
  • 好吧,通过将textBox移出updatePanel,将Asynch Trigger保留在那里,然后附加onkeyup BounceFocus让它运行起来.谢谢您的帮助! (2认同)

小智 5

AutoPostBack="true" OnTextChanged="TextBox1_TextChanged"

这两个事件都需要触发文本更改事件。