【问题标题】:ASP.NET textbox textchange with same text input具有相同文本输入的 ASP.NET 文本框文本更改
【发布时间】:2015-08-23 16:25:23
【问题描述】:

我的 ASP.NET 页面有一个文本框(比如 TextBox1)。我使用 TextBox1 的 TextChanged 事件来填充同一页面上的其他一些文本框。问题来了:

  • 当用户第一次输入一些文本并失去对 TextBox1 的关注时,TextChanged 事件被触发并且一切正常。
  • 但如果用户输入了与第一次相同的输入,则不会触发 TextChanged 事件。 (因为回发之间没有文本更改)

无论用户输入相同的文本还是不同的文本,我都想触发服务器端事件。因此,在这两种情况下,页面的其余部分都会更新。 有什么方法或解决方法吗?

语言背后的代码是 C#。

已编辑:添加代码。

ASP 页面

<asp:TextBox ID="txtClientNumber"  AutoPostBack="true"  
    runat="server" Width="100px"  onFocus="select()"
    OnTextChanged="txtClientNumber_TextChanged"  ></asp:TextBox>

C#

protected void txtClientNumber_TextChanged(object sender, EventArgs e)
{ 
 //txtName.Text = ...<get data from SQL Server >..
 //other codes
} 

谢谢。

【问题讨论】:

  • 如果你添加一些代码来显示你所做的事情会很有帮助:D
  • 帖子已更新,谢谢
  • 您的 TextBox 控件是否嵌套在
    中?
  • 是的,它在表单中,TextChanged 事件在正常情况下有效。

标签: c# asp.net visual-studio-2010


【解决方案1】:

这个问题相当广泛,所以答案有点笼统。为此,请使用 ASP.NET TextBox1 OnTextChanged 事件并设置属性 AutoPostback="True"

此外,您可以通过将属性添加到TextBox1 控件来在客户端脚本中处理此事件:TextBlock1.Attributes.Add("onblur","SomeJavascriptFunction()");

希望这会有所帮助。

【讨论】:

  • 谢谢,尝试了 OnTextChanged 和 AutoPostback="True"。事情是这样的,在用户输入文本和页面更新后,如果用户需要再次输入相同的文本; OnTextChanged 不起作用。并且这个事件应该在服务器上处理
  • 如果 Text 没有改变,那么回发事件将不会触发(这很合乎逻辑,避免了不必要的服务器往返而没有任何改变)。您可以使用 Javascript 实现客户端处理(即使文本保持不变也会触发 onblur 事件),如我的回答所示。如果满意,请检查是否接受,如果您有更多问题,请单独发布。最好的问候,
  • 您能否建议一种替代方法来触发服务器端事件,无论文本框输入是否相似。应该从客户端事件处理程序调用什么事件。因为从 JavaScript onkeyuponblur 调用 TextChanged 不起作用。
  • 这个 cmets 线程太长了。我已经回答了你的问题。如果您有更多问题,请单独发布。最好的问候,
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 2021-12-26
  • 2011-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多