次のようなトリガーとして、更新パネルに関連付けられた検索ボタンがあります。
<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番目のリクエストを防ぐことができますか?私が正しい方向に進んでいない場合、誰か他のアイデアがありますか?
ありがとう、
マット