【问题标题】:ASP.NET Text_Change Event [closed]ASP.NET Text_Change 事件 [关闭]
【发布时间】:2017-09-20 14:03:44
【问题描述】:

在 asp.net web 应用程序中,我在 UI 中有一个文本框和一个按钮。我为文本框设置了 textchanged 事件。

Textbox_TextChanged 事件: 当此事件触发时,网页将通过脚本管理器功能显示 js 弹出窗口。

按钮点击事件: 当此事件触发时,它将清除文本框的值。

现在的问题是,

当我在文本框中写一些文本并且没有将焦点移出文本框时,我单击了按钮以清除值。但是 Visual Studio 触发 Textbox_TextChanged 事件。我只需要触发按钮单击事件而不是 Textbox_TextChanged 事件。

注意:这里两个元素都是asp控件。

请帮助我摆脱这个问题。

【问题讨论】:

  • 你用 vb 还是 c# 编写哪种语言?
  • 另外,你能显示标记吗
  • 我用的是vb语言。
  • 当您点击按钮时,that 获得焦点。因此文本框失去焦点并触发 TextChanged。

标签: asp.net .net vb.net webforms


【解决方案1】:

Text_Changed 和 Button_Click 是服务器控件的服务器事件。这意味着向服务器发布新的 http 请求以获取新的 http 响应。当这些事件完成时,您将看到一个全新的 html DOM,它是从您的 Page 类的全新实例创建的。现有的 html DOM 已被销毁,因此新的 DOM 可以取而代之。对于像 Text_Changed 这样的东西,这很少是一个好主意,它可能需要反复触发并尽可能快地响应用户键入的内容。

您可能想重新考虑这些完全在 javascript 中发生;甚至不使用 ScriptManager。如果您正在编写 C# 或 VB.Net 来响应这些事件,那么您来错地方了。不幸的是,javascript 没有直接等效于 Text_Changed,您需要查看 onkeydown、onkeyup、onkeypress、onpaste、oncut 和 onmouseup 事件,其中任何一个可能会导致文本改变。

在 UI/UX 说明中,在任何可能的文本更改时将弹出窗口推送到用户面前也不是一个好主意。当您在他们打字时打断他们时,用户往往不喜欢它。您可能希望查看弹出窗口的 onblur 和 onchange 之类的事件,并在用户仍在文本框中工作时使用其他一些视觉指示表明事情不正确......不会立即中断它们的东西。

【讨论】:

    【解决方案2】:

    找到您正在使用的文本框控件,然后在 Visual Studio 中打开属性窗口(按 F4)。

    找到闪电图标并点击它,

    接下来找到 Text Changed 事件并从该字段中删除方法 \ 子名称。

    或者在您的 ASPX 标记中,您也可能会在那里找到该事件...

    另外,在你的代码后面你会有这样的东西

    public sub Text_Changed(...) Handles MyPage.Text_Changed ' (im plucking this out of the air as its been a while since ive worked with VB)
    

    您可以删除 Handles 位,这也可以为您完成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多