gpt4 book ai didi

asp.net - updatepanel 内的文本框出现问题 - 未导致 OnTextChanged 事件

转载 作者:行者123 更新时间:2023-12-02 09:41:03 25 4
gpt4 key购买 nike

我有以下情况:我在 ajax updatepanel 中有一个文本框。无论用户在文本框中键入内容,我都必须显示一条消息(不同的消息取决于用户键入的数据)。

     <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:TextBox ID="txtMyTexbox" runat="server" Width="500px" OnTextChanged="txtMyTexbox_TextChanged" AutoPostBack="true"></asp:TextBox>
<br />
<asp:Label ID="lblMessage" runat="server" CssClass="errorMessage" Visible="false">Hello World</asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txtMyTexbox" />
</Triggers>
</asp:UpdatePanel>

在服务器端,我在页面加载时编写了以下内容

ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(txtMyTexbox);           

以及这样的方法

protected void txtMyTexbox_TextChanged(object sender, EventArgs e)
{
if (.....)
{
lblMessage.Visible = false;
}
else
{
lblMessage.Visible = true;
}
}

我现在的问题是:当用户在文本框中键入内容时,它不会引发 OnTextChanged 事件。

我错过了什么吗?

最佳答案

我不确定您的问题是否与 UpdatePanel 有关。

事实上,TextChanged 事件在输入时不会触发。它只会在文本框失去焦点后触发。如果 AutoPostBack 设置为 True,或者在下一次回发发生时,就会直接发生这种情况。请参阅 AutoPostBack property 的文档和 TextChanged event .

Afaik,你最好的选择可能是在 JavaScript 中处理 keyup 事件。

这是一个简单的 jQuery 示例:

$(document).ready(function() {
$(':text[id$=YourTextBox]').keyup(function() {
if ($(this).val() === "your special value") {
$('span[id$=YourLabel]').css('visibility', 'visible');
}
else {
$('span[id$=YourLabel]').css('visibility', 'hidden');
}
});
});

关于asp.net - updatepanel 内的文本框出现问题 - 未导致 OnTextChanged 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/826023/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com