У меня есть кнопка поиска, привязанная к панели обновления в качестве триггера, например:
<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();
}
);
Это работает отлично, за исключением случаев, когда я начинаю печатать слишком быстро. Как только я набираю слишком быстро (я думаю, что это быстрее, чем на самом деле возвращают данные), вся страница обновляется (выполняет обратную передачу?) Вместо только панели обновления.
Я также обнаружил, что вместо того, чтобы печатать, если я просто быстро нажимаю на кнопку, он начинает делать то же самое.
Есть ли способ помешать этому? Возможно предотвратить 2-ые запросы, пока первый не был закончен? Если я не на правильном пути, у кого-нибудь есть другие идеи?
Спасибо,
Matt