如何在文本框中键入时触发Textbox textchanged事件或执行部分回发

时间:2014-02-07 06:09:22

标签: c# javascript jquery asp.net

在我的项目中,我使用updatepanel内的Textbox来显示db表中尚不存在的Receipt号。          但是键入时文本框上的textchanged事件不会触发。我的逻辑是在打字时显示可用的收据。如果没有显示任何内容,则用户可以插入该收据编号。

<asp:UpdatePanel ID="updAvailableReceipt" runat="server">
     <ContentTemplate>
         <asp:TextBox ID="txtReceiptNo" runat="server" class="textBoxStyle" AutoPostBack="true" OnTextChanged="txtReceiptNo_TextChanged"></asp:TextBox>
         <asp:GridView ID="grdShowAvailableReceipt" runat="server" EnableTheming="True" ShowHeader="False"></asp:GridView>
     </ContentTemplate>
     <Triggers>
          <asp:AsyncPostBackTrigger ControlID="txtReceiptNo" EventName="TextChanged" />
     </Triggers>
</asp:UpdatePanel>

protected void txtReceiptNo_TextChanged(object sender, EventArgs e)
{
    param = ParameterClass.IniliazeParameter(1);
    int count=0;
    ParameterClass.AddParameter(ref param, "@ReceiptNumber", txtReceiptNo.Text, ref count);
    grdShowAvailableReceipt.DataSource = new bAuctionPayment().Fetch(RecordFetchMode.FethcAvailableReceipt, param);
    grdShowAvailableReceipt.DataBind();
}

这个问题已经存在但尚未回答......

2 个答案:

答案 0 :(得分:1)

键入时不会触发Textchanged事件。当你失去焦点时会被解雇所以你的代码很好,只是你期待一些永远不会发生的事情。如果要部分更新页面,请尝试组合jquery ajax调用而不是updatepanel。会在一段时间内尝试给你一个例子。

希望这有助于(目前:))

P.S。:我想知道为什么你为这个问题添加了asp.net mvc标签。

编辑:

链接here有一个可以下载的示例。此示例与您尝试实现的非常相似。看看吧。

正如Saurabh所提到的,你可以在jquery中使用文本框的“keyup”事件来进行链接中给出的ajax调用。以下是相同的代码。

        $('#<%= TextBox1.ClientID %>').keyup(function () { 
        //Make ajax call here
        alert('hi'); });

答案 1 :(得分:0)

您可以将Ajax AutoCompleteExtender用于该特定文本框。

<asp:TextBox ID="textbox1" runat="server" AutoPostBack="true"></asp:TextBox>
<asp:AutoCompleteExtender ID="textbox1_AutoCompleteExtender" runat="server" CompletionInterval="1" 
CompletionSetCount="10" DelimiterCharacters="" Enabled="True" MinimumPrefixLength="1"
ServiceMethod="CreateAWebServiceMethod" 
ServicePath="FilePathWhichContainsTheWebServiceMethod" TargetControlID="textbox1" UseContextKey="True">
</asp:AutoCompleteExtender>

服务方法是您在开始在文本框1中键入时要触发的WebServiceMethod。

服务路径是包含您的Web服务方法的文件的路径。