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

nhhxz33t  于 2022-12-24  发布在  .NET
关注(0)|答案(3)|浏览(165)

在WinForms应用程序中,我可以有一个textbox1.keydown事件,但是我想在WebForm(ASP.NET)中实现同样的事情,那么我该如何实现呢?
我需要从数据库中检索有关此事件的数据。

pinkon5k

pinkon5k1#

你可以使用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)
          }
       });
   }
k97glaaz

k97glaaz2#

在Win表单中,您使用运行的机器并与之交互,当您编写smth keydown事件时,会触发该事件,但在Web表单中,一旦客户端文件从服务器发送到多个客户端(例如stackoverflow.com及其用户),则没有javascript就无法触发服务器端事件。要实现您的目标我建议您在JS中捕获keyUp事件,并通过Callback发送数据,然后将服务器需要的数据返回到客户端,并在JS中处理该数据。

第二种方法protected void TextBox1_**TextChanged**(object sender, EventArgs e)使用此事件,但它将在每个键打开时刷新页面。

cngwdvgl

cngwdvgl3#

在Web应用程序中,有些事情是在客户端完成的,有些事情是在服务器端完成的。
我不知道你现在什么实现,但我认为,在大多数情况下,上升的关键事件将在客户端。
因此,有一个很棒的库JQUERY(javascript)可以帮助您完成这类工作人员。
请参阅KEYDOWN的文档
我为你写了一个example
HTML代码

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

查询(JavaScript)代码

$(document).ready(function() {

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

});​

可以解释代码

  • 第一行我检查文档是否准备好了
  • 然后缓存keydown事件并触发函数
  • 在我调用jquery的ajex函数的函数中,你会看到一个"done"函数和一个名为html的var,它保存了从服务器返回的内容

相关问题