2016-09-07 72 views
0

我知道這聽起來很愚蠢。另外我知道這是因爲每一次按鍵事件都會造成服務器故障。Asp.Net C# - 在keypress事件中執行存儲過程

但在keypress事件中調用存儲過程是我迄今爲止唯一解決的問題。

但有時當按壓太快時結果不正確。這是因爲它總是改變文本框中的值。

任何人都可以建議我如何正確地做到這一點?在JavaScript也許或其他選項。

+0

我建議尋找到Rx和利用按鍵事件節流,使您不要立即啓動存儲過程。 –

+0

同意@TheSenator重新推遲。此外,擁有內存緩存而不是連續訪問數據庫將是理想選擇。如果您的網站流量很高,這種方式效果不佳。 – DvS

+0

你似乎試圖重新發明稱爲「自動完成」的輪子。使用預先存在的解決方案。 – CodeCaster

回答

1

您可能希望用JavaScript設置超時時間,例如在調用存儲過程之前0.25秒。

<input type="text" onkeypress="myFunction()"> 
 

 
<script> 
 
    var myVar; 
 
    function myFunction() { 
 
    clearTimeout(myVar); 
 
    myVar = setTimeout(function(){ alert("Hello"); }, 2000); // 2 seconds 
 
    } 
 
</script>

在你的情況,而不是警報(「你好」),你要撥打的SP

+0

這適用於我! :)) – jclima05