2016-09-07 74 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