我有一个绑定到更新面板的搜索按钮作为触发器,如下所示:
<asp:Panel ID="CRM_Search" runat="server">
<p>Search: <asp:TextBox ID="CRM_Search_Box" CssClass="CRM_Search_Box" runat="server"></asp:TextBox>
<asp:Button ID="CRM_Search_Button" CssClass="CRM_Search_Button" runat="server" Text="Search" OnClick="SearchLeads" /></p>
</asp:Panel>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<Triggers>
<asp:AsyncPostBackTrigger ControlID="CRM_Search_Button" />
</Triggers>
<ContentTemplate>
/* Content Here */
</ContentTemplate>
</asp:UpdatePanel>
在我的 javascript 中,我使用 jQuery 来抓取搜索框并将其绑定以使搜索按钮单击:
$($(".CRM_Search_Box")[0]).keyup(
function () {
$($(".CRM_Search_Button")[0]).click();
}
);
这非常有效,除非我开始打字太快。一旦我输入太快(我的猜测是它是否比数据实际返回的速度更快),整个页面就会刷新(进行回发?),而不仅仅是更新面板。
我还发现,如果我只是快速单击按钮,它就会开始做同样的事情,而不是打字。
有没有办法阻止它这样做?可能在第一个请求完成之前阻止第二个请求?如果我不在正确的轨道上,那么有人还有其他想法吗?
谢谢,
马特