C#asp.net中WebForm中Winform的Textbox.KeyDown的替代事件是什么?

时间:2012-09-24 07:15:24

标签: c# asp.net textbox keydown

在winform应用程序中,我可以

textbox1.keydown 

事件,但我想在webform(asp.net)中实现相同的功能,那么我该怎么做呢?我需要在此事件中从数据库中检索数据......

3 个答案:

答案 0 :(得分:2)

您可以使用onkeydown事件,然后调用您的客户端功能。在客户端功能内部,您可以进行ajax调用以填充数据库中的数据。

    <asp:TextBox ID="txtName" runat="server" onkeydown="javascript: callMe();" />

    function callMe()
    {
        $.ajax({
          url: 'URLOFTHEFUNCTION',
          type: 'GET',
          cache: false,
          success: function (result) {
              alert(result)
          }
       });
   }

答案 1 :(得分:0)

在Win Forms中,您使用正在运行的计算机并与之交互,因为您编写了smth keydown事件,但是在Web表单中,一旦客户端文件从服务器发送到多个客户端(例如stackoverflow) .com及其用户)没有javascript可以触发服务器端事件。 为了实现您的目标,我建议您在JS中捕获keyUp事件并通过Callback发送数据,然后返回从服务器到客户端所需的数据并在JS中处理该数据。
第二种方式protected void TextBox1_**TextChanged**(object sender, EventArgs e) 使用此事件,但它会在每个键上刷新页面。

答案 2 :(得分:0)

在Web应用程序中,您可以在客户端中执行某些操作,而在服务器中执行某些操作。

我现在不知道你取得了什么,但我认为在大多数情况下,keydown事件会在客户端上升。

所以,有一个很棒的库叫JQUERY(javascript)可以帮助你做这种工作。

请参阅KEYDOWN

的文档

我为你写了example

HTML代码

<input id="txtBox" type="text" />​

JQUERY(javascript)代码

$(document).ready(function() {

$("#txtBox").keydown(function() {   
   $.ajax({
   url: "URLTOTHEFUNCTIONINTHESERVER",
   type: 'GET',
   cache: false
   }).done(function( html ) {
    alert(html);
    });
});

});​

确定解释代码

  • 我正在检查文件是否准备就绪的第一行
  • 然后我缓存keydown事件并触发一个函数
  • 在函数内部,我调用jquery的ajex函数,在函数内部,你会看到一个“完成”函数和一个名为html的var,它包含从服务器返回的内容