0

在 winfrom 应用程序中,我可以拥有

textbox1.keydown 

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

4

3 回答 3

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)
          }
       });
   }
于 2012-09-24T07:24:36.390 回答
0

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

于 2012-09-24T07:38:37.353 回答
0

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

我现在不知道你取得了什么成就,但我认为在大多数情况下,keydown 事件将出现在客户端中。

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

查看KEYDOWN的文档

我为你写了一个例子

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);
    });
});

});​

OK解释代码

  • 第一行我正在检查文件是否准备好
  • 然后我缓存keydown事件并触发一个函数
  • 在函数内部,我正在调用 jquery 的 ajex 函数,在函数内部,您将看到一个“完成”函数和一个名为 html 的 var,它保存从服务器返回的内容
于 2012-09-24T07:39:37.307 回答