当前位置: 首页 > 知识库问答 >
问题:

ASP. NET TextBox OnTextChanged事件未被触发

苗征
2023-03-14

我正在尝试添加一个搜索功能,在这个功能中,每当用户输入文本(一个字母接一个字母)时,网站都会向服务器发送一个收集信息的请求。对于这一点,我需要的是我假设的ContextChanged事件?我尝试过使用它,但活动无法启动。

<asp:TextBox ID="futu_search" type="text" spellcheck="false" placeholder="Search" OnTextChanged="futu_search_TextChanged"  runat="server"></asp:TextBox>

还有我的代码:

protected void futu_search_TextChanged(object sender, EventArgs e)
{
       //I kept a break point here to see if it's fired
       //Send requests
}

你认为哪里不对?yall是否有比“ContextChanged事件”更好的解决方案来获得每次按键和搜索框?

共有3个答案

金成济
2023-03-14

首先,OnTextChanged事件不会触发,因为其AutoPostBack属性默认为false。因此,要使其发生,请将其值设置为true。

只有当文本框焦点丢失时,才会触发OnTextChanged事件。所以在这种情况下,您可以使用AJAX来获取值。

为此,您可以使用onkeyup在每个字符输入中获取javascript函数中的值。

何高旻
2023-03-14

我认为使用ajax和jquery来完成您想要完成的任务比回发每个按键要好。

请查看此链接以了解更多详细信息和示例。

此外,当您失去焦点而不是在键入时触发ContextChanged事件,这似乎是您的需求。

来自CodeProject中的回答:

TextChanged:“在向服务器发送的邮件之间文本框的内容发生更改时发生。”AutoPostBack:“使用AutoPostBack属性指定当TextBox控件失去焦点时是否会自动回发到服务器。在TextBox控件中按ENTER或TAB键是更改焦点的最常用方法。”

示例代码:

来源:https://jqueryui.com/autocomplete/

<script>
  $(function() {
    var availableTags = [
      "ActionScript",
      "AppleScript",
      "Asp",
      "BASIC",
      "C",
      "C++",
      "Clojure",
      "COBOL",
      "ColdFusion",
      "Erlang",
      "Fortran",          
      "Scala",
      "Scheme"
    ];
    $( "#tags" ).autocomplete({
      source: availableTags
    });
  });
  </script>
</head>
<body>

<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
</div>

重要提示:如果您仍计划使用按键,请阅读下面的报价,

onKeyPress期间输入文本框的值始终为更改前的值。

而且它不会在chrome中因“退格”而开火。样品提琴

如果你仍然对OnKeyPress感兴趣,我建议你看看这个问题。

这是您正在尝试做的,但问题是出现了一些旧的、更新的和更好的东西,比如HTML5。

注意:如果使用右键单击,在KeyUp事件上使用不会触发=

冀啸
2023-03-14

启用自动回邮为真。。

<asp:TextBox AutoPostback="true" ID="futu_search" type="text" spellcheck="false" placeholder="Search" OnTextChanged="futu_search_TextChanged"  runat="server"></asp:TextBox>

如果您想在用户按键时触发事件,则必须使用java脚本**onkeyup**event

<asp:TextBox onkeyup ="return abc(event)" AutoPostback="true" ID="futu_search" type="text" spellcheck="false" placeholder="Search" OnTextChanged="futu_search_TextChanged"  runat="server"></asp:TextBox>


<script>
function abc(evt) {

         ..put here your logic
        }
</script>
 类似资料:
  • 问题内容: 我有3个文件: js_json.js->用于我的json代码 javascript.js->用于我的javascript函数 index.php 这里的代码为: 这是我的代码: 这里的代码: 我的问题是: 当我单击链接“ Hola Test 1”时,它将起作用并显示消息。问题是,在单击选择选项之后,出现了链接“ Hola Test”,然后单击该链接(“ Hola Test”),该消息没

  • 问题内容: 我有一个带有一列复选框的GridView(GridView的其余部分正在从数据库中填充)。我正在使用AJAX执行不同的功能,并且想知道我是否只是在正确的位置调用了OnCheckedChanged事件。是否应该将其包装在某种UpdatePanel中?我对这一切的工作方式仍然很陌生…基本上,我的目标是在选中复选框后更改数据库中的位值。我知道该怎么做的逻辑,我只是​​不知道我是否以正确的方式

  • 我正在为android创建一个phonegap应用程序,并想使用一些phonegap事件,如“恢复”、“暂停”、“后退按钮”等,但除了“deviceready”事件外,这些事件都不会被触发。以下是我的javascript代码,请检查我是否犯了任何错误: “ondeviceredy()”函数中的警报正在工作。 请帮忙,提前谢谢。

  • 我对TextWatcher有一个恼人的问题。我一直在网上搜索,但什么也找不到。如果有人能帮助我,我将不胜感激。 由于某些原因,在一次文本更改时对TextWatcher事件的调用是不稳定的。有时它们被触发一次(就像它们应该被触发的那样),有时两次,有时三次。不知道为什么,整个事情都很直截了当。有时,PostTextChanged()上的可编辑参数在toString()和length()中返回空值。

  • 我已经在Flink中实现了CEP模式,它按预期工作连接到本地Kafka代理。但是当我连接到基于集群的云kafka设置时,Flink CEP不会触发。 我正在使用AscendingTimestampExtractor, 我也收到警告消息, AscendingTimestampExtractor:140-违反时间戳单调性:1594017872227 而且我也尝试过使用Assignerwith周期水印和

  • 我设计了两个输入命令,它们将在几分钟内“发送一封信”...如果用户在该时间段内发送另一个命令,则可以取消该命令。 我正在通过REST API控制器触发命令... 我希望看到的是日志语句,如果我计划一封信,并在接下来的五分钟内立即取消它,这些语句表示一封信被计划和取消。 这是我的集合体- 这是我的活动->